add method
Holds trigger. A replaced copy keeps its first hold time, so a re-pull
does not extend the 5 minutes.
Implementation
void add(CEPTriggerPayload trigger) {
var heldAt = _now();
final index = _entries
.indexWhere((entry) => entry.$1.cepCampaignId == trigger.cepCampaignId);
if (index >= 0) heldAt = _entries.removeAt(index).$2;
if (_entries.length >= _capacity) {
_onDrop(_entries.removeAt(0).$1, DropReason.superseded);
}
_entries.add((trigger, heldAt));
_schedule();
}