Click or drag to resize

GSF.Collections Namespace

Contains classes and type extension functions related to any fundamental collection including thread based processing queues.
Classes
  Class Description
Public class AsyncDoubleBufferedQueueT Combines AsyncQueueT and DoubleBufferedQueueT to provide a low-contention, double-buffered queue suitable for multiple-producer, single-consumer scenarios.
Public class AsyncQueueT Creates a fast, light-weight asynchronous processing queue with very low contention.
Public class CollectionExtensions Defines extension functions related to manipulation of arrays and collections.
Public class ConcurrentIsolatedQueueT Provides a buffer of point data where reads are isolated from writes. This class differs from IsolatedQueueT because writes can be concurrent. Reads on the other hand have to be externally synchronized.
Public class DictionaryListTKey, TValue Represents a sorted dictionary style list that supports IList.
Public class DoubleBufferedQueueT A thread-safe double-buffered queue that allows for low-contention item processing in single-producer, single-consumer scenarios.
Public class DoubleBufferedQueueManagerT Manages queues to reduce contention for a multithreaded, multiple-producer, single-consumer scenario.
Public class DoubleBufferedQueueProducerT A producer for a DoubleBufferedQueueT which can only be used to provide items to the queue for consumption.
Public class DynamicObjectPoolT Provides a thread safe queue that acts as a buffer pool.
Public class FileBackedDictionaryTKey, TValue Represents a lookup table of key/value pairs backed by a file, with very little memory overhead.
Public class FileBackedHashSetT Represents a lookup table backed by a file, with very little memory overhead.
Public class IndexedArrayT A self growing array of items. This class is thread safe.
Public class IsolatedQueueT Provides a buffer of point data where reads are isolated from writes. However, reads must be synchronized with other reads and writes must be synchronized with other writes.
Public class ListCollectionT A faster and functionally equivalent implementation of CollectionT
Public class ListExtensions Extensions for ListT
Public class NullableArrayT Creates an array of a struct type that uses bitmask for designating a null value.
Public class OrderedDictionaryTKey, TValue Represents an ordered collection of keys and values with the same performance as DictionaryTKey, TValue with O(1) lookups and adds but with O(n) inserts and removes.
Public class OrderedDictionaryTKey, TValueKeyCollection Represents the collection of keys in a OrderedDictionaryTKey, TValue. This class cannot be inherited.
Public class OrderedDictionaryTKey, TValueValueCollection Represents the collection of values in a OrderedDictionaryTKey, TValue. This class cannot be inherited.
Public class PagedListT Defines a paged list for an enumeration.
Public class PriorityQueueT Represents a queue of items to which priority can be assigned.
Public class ProcessDictionaryTKey, TValue Represents a thread-safe (via locking) keyed collection of items, based on DictionaryListTKey, TValue, that get processed on independent threads with a consumer provided function.
Public class ProcessQueueT Represents a thread-safe (via locking) list of items, based on ListT, that get processed on independent threads with a consumer provided function.
Public class RollingWindowT Represents a rolling window of data with FIFO semantics that will automatically truncate the data when the window size is exceeded.
Public class Code example SettingsCollection A collection of settings that can be represented as a string of key-value pairs for easy persistence and also provide built-in validation support for the settings.
Public class SortedQueueTKey, TValue Creates a SortedQueueTKey, TValue. This class allows adding items in random order, but dequeuing based upon the sorting of
Structures
Interfaces
  Interface Description
Public interface IPagedList Defines an interface for PagedListT instances that is usable regardless of any specified type.
Delegates
  Delegate Description
Public delegate ProcessDictionaryTKey, TValueCanProcessItemFunctionSignature Function signature that determines if a key and value can be currently processed.
Public delegate ProcessDictionaryTKey, TValueProcessItemFunctionSignature Function signature that defines a method to process a key and value one at a time.
Public delegate ProcessQueueTCanProcessItemFunctionSignature Function signature that determines if an item can be currently processed.
Public delegate ProcessQueueTProcessItemFunctionSignature Function signature that defines a method to process items one at a time.
Public delegate ProcessQueueTProcessItemsFunctionSignature Function signature that defines a method to process multiple items at once.
Enumerations
  Enumeration Description
Public enumeration QueueProcessingStyle Enumeration of possible ProcessQueueT processing styles.
Public enumeration QueueThreadingMode Enumeration of possible ProcessQueueT threading modes.
Public enumeration RequeueMode Enumeration of possible requeue modes.
Public enumeration RequeueReason Enumeration of possible requeue reasons.