Class InfiniteBufferInt

    • Constructor Detail

      • InfiniteBufferInt

        public InfiniteBufferInt()
        Construct a new InfiniteBufferInt with the default size (of 8).
      • InfiniteBufferInt

        public InfiniteBufferInt​(int initialSize)
        Construct a new InfiniteBufferInt with the specified initial size.
        Parameters:
        initialSize - the number of ints the InfiniteBufferInt can initially store.
        Throws:
        BufferIntSizeError - if initialSize is zero or negative. Note: no action should be taken to try/catch this exception - application code generating it is in error and needs correcting.
    • Method Detail

      • get

        public int get()
        Returns the oldest int from the InfiniteBufferInt and removes it.

        Pre-condition: getState must not currently return EMPTY.

        Specified by:
        get in interface ChannelDataStoreInt
        Returns:
        the oldest int from the InfiniteBufferInt
      • startGet

        public int startGet()
        Returns the oldest integer from the buffer but does not remove it. Pre-condition: getState must not currently return EMPTY.
        Specified by:
        startGet in interface ChannelDataStoreInt
        Returns:
        the oldest int from the Buffer
        See Also:
        ChannelDataStoreInt.endGet()
      • put

        public void put​(int value)
        Puts a new int into the InfiniteBufferInt.

        Implementation note: if InfiniteBufferInt is full, a new internal buffer with double the capacity is constructed and the old data copied across.

        Specified by:
        put in interface ChannelDataStoreInt
        Parameters:
        value - the int to put into the InfiniteBufferInt
      • getState

        public int getState()
        Returns the current state of the InfiniteBufferInt.
        Specified by:
        getState in interface ChannelDataStoreInt
        Returns:
        the current state of the InfiniteBufferInt (EMPTY or NONEMPTYFULL)
      • clone

        public Object clone()
        Returns a new (and EMPTY) InfiniteBufferInt with the same creation parameters as this one.

        Note: Only the initial size and structure of the InfiniteBufferInt is cloned, not any stored data.

        Specified by:
        clone in interface ChannelDataStoreInt
        Overrides:
        clone in class Object
        Returns:
        the cloned instance of this InfiniteBufferInt.