![]() | com.espertech.esper.compat.collections Namespace |
[Missing <summary> documentation for "N:com.espertech.esper.compat.collections"]
Class | Description | |
---|---|---|
![]() | ArrayDequeT | |
![]() | ArrayDictionaryTK, TV | |
![]() | Arrays |
Helper class that assists with operations on arrays.
|
![]() | BaseMapTK, TV |
Base for dictionaries that contain extended functionality.
|
![]() | BoundBlockingQueueT | |
![]() | ChainedArrayListT | |
![]() | CollectionPlusT |
Collection that wraps another collection + an item
|
![]() | Collections |
Provides additional functions that are useful when operating on
collections.
|
![]() | Comparers | |
![]() | ComparersCollatingComparer | |
![]() | ComparersDefaultComparerT | |
![]() | CompatExtensions | |
![]() | Continuation | |
![]() | CopyOnWriteArraySetT | |
![]() | CopyOnWriteListT | |
![]() | DebugDictionaryK, V | |
![]() | DebugListT |
Used to debug calls to a list.
|
![]() | DictionaryExtensions | |
![]() | EmptyDictionaryK, V | |
![]() | EmptyListT | |
![]() | EmptySetT | |
![]() | EnumerationHelper |
Collection of utilities specifically to help with enumeration.
|
![]() | FixedDictionaryK, V | |
![]() | FixedDictionarySchemaK |
FixedDictionarySchema is a class that represents the structure of a map who's
keys are known when the schema is created. FixedSchemas are immutable
once they have been created, but because they are known they can be
used to create Map objects that have a much smaller memory footprint
than conventional hashtables.
|
![]() | GenericExtensions | |
![]() | HashMapTK, TV |
An extended dictionary based upon a closed hashing
algorithm.
|
![]() | IdentityDictionaryK, V |
An extended dictionary based upon a closed hashing
algorithm.
|
![]() | ImperfectBlockingQueueT |
ImperfectBlockingQueue is a blocking queue designed for very high performance exchanges
between threads. Multiple readers and writers can exchange information using the
ImperfectBlockingQueue. The design allows for a read node and a write node. Both the
read node and write node are assumed to be probablistically incorrect at any given time.
Specifically, that means that the read node may have actually been processed and the
write node may not actually be the tail. Rather than attempting to correct for this
imperfection in the data structure, we leverage it.
When a writer attempts to write to the tail, the tail uses an atomic compare-exchange
to exchange the next node with the newly allocated node. If the exchange fails, the
thread will iterate through the next member until it finds null and the cycle continue
again with the atomic compare-exchange. Using this method, the writer will succeed
in writing to the tail atomically. The write node does not need to accurately reflect
the true end of tail, so adjusting the write node to the written node is "reasonably"
accurate.
When a reader attempts to read from the head, an atomic compare exchange is used to
test against the "IsProcessed" field of the node. If the node has been processed, then
the reader moves on to the next node until it can successfully perform a CAS against
the node. If none can be found, the method will force a sleep to simulate a block.
Once found, the reader extracts the value for return and sets the head equal to the
node just read. Again, since we're probablistic, this is fine. Since we've successfully
read from the node, we're assured that all nodes before us have been processed. Being
"reasonably" accurate with the read node is fine since the next reader will simply
advance from this point.
This class was tested against various concurrent reader/writer models was equal to or
outperformed all other models in all cases. However, it still appears that during
tight iterations that there is about a 4-1 call ratio between CAS and the Push method
which means there is still some efficiency to be squeezed out.
|
![]() | ImperfectBlockingQueueTNode | |
![]() | LinkedBlockingQueueT | |
![]() | LinkedHashMapTK, TV |
Hashtable and linked list implementation designed to mimic Java's LinkedHashMap
functionality.
|
![]() | LinkedHashMapTK, TVEntryEventHandler |
Delegate for handling events on dictionary entries.
|
![]() | LinkedHashSetT |
Description of LinkedHashSet.
|
![]() | ListExtensions | |
![]() | LookaheadEnumeratorT | |
![]() | NoSuchElementException | |
![]() | NullableDictionaryK, V | |
![]() | NullableValueTypeDictionaryK, V | |
![]() | NullEnumerableT | |
![]() | NullEnumeratorT | |
![]() | ObjectMap | |
![]() | ObsoleteConcurrentDictionaryK, V | |
![]() | OrderedDictionaryTK, TV | |
![]() | PairTFirst, TSecond |
General-purpose pair of values of any type. The pair only equals another pair if
the objects that form the pair equal, ie. first pair first object equals (.equals) the second pair first object,
and the first pair second object equals the second pair second object.
|
![]() | ProxyComparerT | |
![]() | ProxyEnumerableT |
An enumerable that leverages a function.
|
![]() | ReadOnlyCollectionT |
A wrapper that provide a list that is readonly.
|
![]() | ReadOnlyDictionaryTK, TV |
A wrapper that provide a dictionary that is readonly.
|
![]() | ReadOnlyListT |
A wrapper that provide a list that is readonly.
|
![]() | ReferenceMapTKey, TValue | |
![]() | ReferenceType | |
![]() | SetUtil | |
![]() | SimpleComparerT | |
![]() | SingletonT | |
![]() | StandardComparerT | |
![]() | StringDictionaryV | |
![]() | StringMap | |
![]() | SubListT | |
![]() | SubmapDictionaryK, V |
An efficient subsection of an ordered or sorted dictionary. Designed for traversal and lookup, but not
necessarily efficient at counting elements.
|
![]() | SynchronizedCollectionT | |
![]() | SynchronizedListT | |
![]() | SynchronizedSetT | |
![]() | TransformCollectionTInt, TExt | |
![]() | TransformDictionaryTK1, TV1, TK2, TV2 | |
![]() | TupleTA, TB | |
![]() | TupleTA, TB, TC |