Class OrderedRegistry<T>
Represents a thread-safe registry of T which is ordered by 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
Inheritance
System.Object
OrderedRegistry<T>
Implements
System.Collections.Generic.IEnumerable<T>
System.Collections.IEnumerable
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: NFX
Assembly: NFX.dll
Syntax
[Serializable]
public class OrderedRegistry<T> : Registry<T>, IOrderedRegistry<T>, IRegistry<T>, IEnumerable<T>, IEnumerable where T : INamed, IOrdered
Type Parameters
Constructors
OrderedRegistry()
Declaration
OrderedRegistry(Boolean)
Declaration
public OrderedRegistry(bool caseSensitive)
Parameters
Type |
Name |
Description |
System.Boolean |
caseSensitive |
|
Properties
Item[Int32]
Tries to return an item by its position index in ordered set of items that this registry keeps.
Null is returned when index is out of bounds.
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
Declaration
public T this[int index] { get; }
Parameters
Type |
Name |
Description |
System.Int32 |
index |
|
Property Value
OrderedValues
Returns items that registry contains ordered by their Order property.
The returned sequence is pre-sorted during alteration of registry, so this property access is efficient.
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
Declaration
public IEnumerable<T> OrderedValues { get; }
Property Value
Type |
Description |
System.Collections.Generic.IEnumerable<T> |
|
Methods
Clear()
Deletes all items from ordered registry
Declaration
public override void Clear()
Overrides
NFX.Registry<T>.Clear()
JustRegistered(T)
Declaration
protected override void JustRegistered(T item)
Parameters
Type |
Name |
Description |
T |
item |
|
Overrides
NFX.Registry<T>.JustRegistered(T)
JustReplaced(T, T)
Declaration
protected override void JustReplaced(T existingItem, T newItem)
Parameters
Type |
Name |
Description |
T |
existingItem |
|
T |
newItem |
|
Overrides
NFX.Registry<T>.JustReplaced(T, T)
JustUnregistered(T)
Declaration
protected override void JustUnregistered(T item)
Parameters
Type |
Name |
Description |
T |
item |
|
Overrides
NFX.Registry<T>.JustUnregistered(T)
Implements
System.Collections.Generic.IEnumerable<T>
System.Collections.IEnumerable
Extension Methods