Namespace Azos.Collections
Classes
BitList
Provides bit array with automatic resizing
BitMatrix2D
Provides an efficient access to a square 2D bit matrix accessible as boolean values
CappedSet<T>
Implements a set of T with the optional size limit and optional item lifespan limit. This class is thread-safe and must be disposed in a deterministic way
EventedCollectionBase<TContext>
Provides base implementation for some evented collections
EventedDictionary<TKey, TValue, TContext>
Represents a dictionary that rises events
EventedList<TData, TContext>
Represents list that rises change events
LookAheadEnumerable<T>
Implements a look-ahead enumerator wrapped around a regular enumerator
LookAheadEnumerator<T>
Implements a look-ahead enumerator wrapped around a regular enumerator
LookAheadExtensions
Extensions methods for LookAheadEnumerable
Matrix2D<T>
Represents a two deminsional matrix of T. This class uses jagged arrays for internal implementation ensuring proper array sizing per matrix structure
Matrix2DBase<T>
MatrixBase<T>
Provides base for various matrices
NamedInterlocked
Provides functionality similar to the Interlocked class executed over a named slot. All operations are THREAD-SAFE for calling concurrently. The name comparison is that of Registry's which is OrdinalIgnoreCase. This class was designed to better organize named counters incremented from different threads, i.e. this is needed to keep a count of calls to remote host identified by their names. This class is NOT designed for frequent additions/deletions of named slots, nor was it designed to keep millions of slots. Use it in cases when there are thousands at most slots and new slots appear infrequently. You must delete unneeded slots
OrderedRegistry<T>
Represents a thread-safe registry of T which is ordered by item's Order property. This class is efficient for concurrent read access and is not designed for cases when frequent modifications happen. It is ideal for lookup of named instances that have much longer time span than components that look them up. Note: since registry does reading in a lock-free manner, it is possible to have an inconsistent read snapshot of ordered items which may capture items that have already/not yet been added to the registry
ReferenceEqualityComparer<T>
Checks for reference equality. Use ReferenceEqualityComparer(T).Instance
Registry<T>
Represents a thread-safe registry of T. This class is efficient for concurrent read access and is not designed for cases when frequent modifications happen. It is ideal for lookup of named instances (such as components) that have much longer time span than components that look them up. Registry performs lock-free lookup which speeds-up many concurrent operations that need to map names into objects. The enumeration over registry makes a snapshot of its data, hence a registry may get modified by other threads while being enumerated.
StringMap
Efficeintly maps string -> string for serialization. Compared to Dictionary[string,string] this class yields 20%-50% better Slim serialization speed improvement and 5%-10% space improvement
Interfaces
ILookAheadEnumerable<T>
Defines an enumerable with look-ahead capability
ILookAheadEnumerator<T>
Defines an enumerator with look-ahead capability
INamed
Denotes an entity that has a container-wide unique Name property. This interface is primarily used with Registry[INamed] class that allows for string-based addressing (getting instances by object instance name). The names are used by many system functions, like addressing components by name in configuration and admin tools
IOrdered
Denotes an entity that has a relative Order property within a collection of entities
IOrderedRegistry<T>
Provides read-only named ordered object lookup capabilities
IRegistry<T>
Provides read-only named object lookup capabilities
Enums
EventedDictionary<TKey, TValue, TContext>.ChangeType
Describes changes in evented list
EventedList<TData, TContext>.ChangeType
Describes changes in evented list
EventPhase
Specifies the phase of the event i.e. before/after
Delegates
EventedCollectionGetReadOnlyHandler<TContext>
Event handler for list changes