Class Accumulator<E>

  • Type Parameters:
    E -

    public class Accumulator<E>
    extends java.lang.Object
    A simple append-only collection supporting an unbounded number of concurrent readers/writers, but a bounded number of items.
    • Constructor Summary

      Constructors 
      Constructor Description
      Accumulator​(int size)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void add​(E item)
      Adds an item to the collection.
      int capacity()  
      void clearUnsafe​(int i)
      Removes element at the speficied index from this accumulator.
      E get​(int i)  
      boolean isEmpty()  
      int size()  
      java.util.Collection<E> snapshot()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Accumulator

        public Accumulator​(int size)
    • Method Detail

      • add

        public void add​(E item)
        Adds an item to the collection. Note it is not guaranteed to be visible on exiting the method, if another add was happening concurrently; it will be visible once all concurrent adds (which are non-blocking) complete, but it is not guaranteed that any size change occurs during the execution of any specific call.
        Parameters:
        item - add to collection
      • isEmpty

        public boolean isEmpty()
      • size

        public int size()
        Returns:
        the size of guaranteed-to-be-visible portion of the list
      • capacity

        public int capacity()
      • get

        public E get​(int i)
      • snapshot

        public java.util.Collection<E> snapshot()
      • clearUnsafe

        public void clearUnsafe​(int i)
        Removes element at the speficied index from this accumulator. This method is not thread-safe when used concurrently with add(Object).