add method

void add(
  1. CEPTriggerPayload trigger
)

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();
}