ixfx
    Preparing search index...

    Class QueueMutable<V>

    Mutable queue that fires events when manipulated.

    Queues are useful if you want to treat 'older' or 'newer' items differently. Enqueing adds items at the back of the queue, while dequeing removes items from the front (ie. the oldest).

    const q = Queues.mutable();       // Create
    q.enqueue(`a`, `b`); // Add two strings
    const front = q.dequeue(); // `a` is at the front of queue (oldest)
    const q = Queues.mutable({capacity: 5, discardPolicy: `newer`});
    

    Events can be used to monitor data flows.

    • 'enqueue': fires when item(s) are added
    • 'dequeue': fires when an item is dequeued from front
    • 'removed': fires when an item is dequeued, queue is cleared or .removeWhere is used to trim queue

    Each of the event handlers return the state of the queue as the 'finalData' field.

    q.addEventListener(`enqueue`, e => {
    // e.added, e.finalData
    });
    q.addEventListener(`removed`, e => {
    // e.removed, e.finalData
    });
    q.addEventListener(`dequeue`, e=> {
    // e.removed, e.finalData
    })

    Type Parameters

    • V

      Data type of items

    Hierarchy (View Summary)

    Implements

    Constructors

    Properties

    data: readonly V[]
    eq: IsEqual<V>
    options: QueueOpts<V>

    Accessors

    • get isDisposed(): boolean

      Returns boolean

    • get isEmpty(): boolean

      Returns true if queue is empty

      Returns boolean

    • get isFull(): boolean

      Is queue full? Returns false if no capacity has been set

      Returns boolean

    • get length(): number

      Number of items in queue

      Returns number

    • get peek(): undefined | V

      Returns front of queue (oldest item), or undefined if queue is empty

      Returns undefined | V

    Methods

    • Returns the item at given rank (0 being front of queue)

      Parameters

      • index: number

      Returns V

    • Dequeues (removes oldest item / item at front of queue)

      Use peek to look at the item at front of queue without removing it.

      Returns undefined | V

      Item, or undefined if queue is empty

    • Enqueues (adds items to back of queue). If a capacity is set, not all items might be added.

      Parameters

      • ...toAdd: readonly V[]

      Returns number

      How many items were added

    • Called when all data is cleared

      Returns void

    • Parameters

      • result: readonly V[]
      • attemptedToAdd: readonly V[]

      Returns void

    • Parameters

      • removed: readonly V[]
      • finalData: readonly V[]

      Returns void

    • Removes values that match predicate.

      Parameters

      • predicate: (item: V) => boolean

      Returns number

      Returns number of items removed.