Interface OffsetQueue<T>

  • Type Parameters:
    T - the type of the items stored in the queue

    public interface OffsetQueue<T>
    A queue of T items indexed by offsets. The items are ordered in the queue according to their offset. The item with the smallest offset is the head of the queue. The item with the largest offset is the tail of the queue.
    • Method Detail

      • putItem

        void putItem​(long offset,
                     T item)
        Put an item in the queue at the given offset.
        Parameters:
        offset - the offset associated to the item
        item - the item to be stored at the given offset
      • putItems

        void putItems​(OffsetQueue<T> offsetQueue)
        Put all the items from the #offsetQueue in this queue.
        Parameters:
        offsetQueue - the queue to be merged into this queue
      • getItem

        @CheckForNull
        T getItem​(long offset)
        Return the item at the given #offset.
        Parameters:
        offset - the offset of the item to be returned
        Returns:
        the item ; or null if no item could be found at the given offset
      • getHeadItem

        @CheckForNull
        T getHeadItem()
        Return the item with the smallest offset in the queue.
        Returns:
        the first item in the queue ; or null if the queue is empty
      • getHeadItems

        @Nonnull
        Iterable<T> getHeadItems​(int skip,
                                 int limit)
        Return #limit items after skipping #skip items from the queue.
        Parameters:
        skip - the number of items to skip
        limit - the maximum number of items to return. -1 will return all items.
        Returns:
        an iterable containing the items
      • getHeadOffset

        long getHeadOffset()
        Returns:
        the smallest offset stored in the queue ; or -1 if the queue is empty.
      • getTailOffset

        long getTailOffset()
        Returns:
        the largest offset stored in the queue ; or -1 if the queue is empty.
      • isEmpty

        boolean isEmpty()
        Returns:
        true if the queue is empty ; false otherwise
      • getSize

        int getSize()
        Returns:
        the number of items in the queue
      • getMinOffsetQueue

        @Nonnull
        OffsetQueue<T> getMinOffsetQueue​(long minOffset)
        Return an OffsetQueue offset queue which contains all the items from the current queue at an offset greater or equal to #minOffset.
        Parameters:
        minOffset - the minimal offset of the items in the returned offset queue
        Returns:
        the offset queue