org.apache.cassandra.utils.concurrent

## Class Accumulator<E>

- java.lang.Object
- - org.apache.cassandra.utils.concurrent.Accumulator<E>

Type Parameters:
  `E` -

All Implemented Interfaces:
  java.lang.Iterable<E>

    public class Accumulator<E>
    extends java.lang.Object
    implements java.lang.Iterable<E>

A simple append-only collection supporting an unbounded number of concurrent readers/writers, but a bounded number of items.

### Constructor Summary

Constructors
Constructor and Description
`Accumulator(int size)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `add(E item)` Adds an item to the collection.
`E` `get(int i)`
`boolean` `isEmpty()`
`java.util.Iterator<E>` `iterator()`
`int` `size()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### 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

#### iterator

    public java.util.Iterator<E> iterator()

Specified by:
  `iterator` in interface `java.lang.Iterable<E>`

#### get

    public E get(int i)