Show / Hide Table of Contents

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
Registry<T>
OrderedRegistry<T>
TypeLocations
Implements
IOrderedRegistry<T>
IRegistry<T>
System.Collections.Generic.IEnumerable<T>
System.Collections.IEnumerable
Inherited Members
Registry<T>.m_Sync
Registry<T>.IsCaseSensitive
Registry<T>.Item[String]
Registry<T>.Count
Registry<T>.Register(T)
Registry<T>.RegisterOrReplace(T)
Registry<T>.RegisterOrReplace(T, T)
Registry<T>.Unregister(T)
Registry<T>.Unregister(String)
Registry<T>.GetOrRegister<TContext>(String, Func<TContext, T>, TContext)
Registry<T>.GetOrRegister<TContext>(String, Func<TContext, T>, TContext, Boolean)
Registry<T>.GetEnumerator()
Registry<T>.IEnumerable.GetEnumerator()
Registry<T>.Names
Registry<T>.Values
Registry<T>.ContainsName(String)
Registry<T>.TryGetValue(String, T)
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
Name Description
T

Constructors

OrderedRegistry()

Declaration
public OrderedRegistry()

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
Type Description
T

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

IOrderedRegistry<T>
IRegistry<T>
System.Collections.Generic.IEnumerable<T>
System.Collections.IEnumerable

Extension Methods

CollectionUtils.ForEach<T>(IEnumerable<T>, Action<T>)
CollectionUtils.ForEach<T>(IEnumerable<T>, Action<T, Int32>)
CollectionUtils.SkipLast<T>(IEnumerable<T>)
CollectionUtils.SkipLast<T>(IEnumerable<T>, Int32)
CollectionUtils.FirstMin<TResult, TComparand>(IEnumerable<TResult>, Func<TResult, TComparand>)
CollectionUtils.FirstMin<TResult, TComparand>(IEnumerable<TResult>, Func<TResult, TComparand>, out TComparand)
CollectionUtils.FirstMax<TResult, TComparand>(IEnumerable<TResult>, Func<TResult, TComparand>)
CollectionUtils.FirstMax<TResult, TComparand>(IEnumerable<TResult>, Func<TResult, TComparand>, out TComparand)
CollectionUtils.FirstOrAnyOrDefault<TResult>(IEnumerable<TResult>, Func<TResult, Boolean>)
CollectionUtils.Distinct<TResult, TKey>(IEnumerable<TResult>, Func<TResult, TKey>)
MiscUtils.NonNull<T>(T, Func<Exception>, String)
ObjectValueConversion.AsString(Object, String, ConvertErrorHandling)
ObjectValueConversion.AsNonNullOrEmptyString(Object)
ObjectValueConversion.AsLaconicConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsJSONConfig(Object, ConfigSectionNode, String, ConvertErrorHandling)
ObjectValueConversion.AsXMLConfig(Object, ConfigSectionNode, ConvertErrorHandling)
ObjectValueConversion.AsChar(Object, Char, ConvertErrorHandling)
ObjectValueConversion.AsNullableChar(Object, Nullable<Char>, ConvertErrorHandling)
ObjectValueConversion.AsByte(Object, Byte, ConvertErrorHandling)
ObjectValueConversion.AsNullableByte(Object, Nullable<Byte>, ConvertErrorHandling)
ObjectValueConversion.AsSByte(Object, SByte, ConvertErrorHandling)
ObjectValueConversion.AsNullableSByte(Object, Nullable<SByte>, ConvertErrorHandling)
ObjectValueConversion.AsShort(Object, Int16, ConvertErrorHandling)
ObjectValueConversion.AsNullableShort(Object, Nullable<Int16>, ConvertErrorHandling)
ObjectValueConversion.AsUShort(Object, UInt16, ConvertErrorHandling)
ObjectValueConversion.AsNullableUShort(Object, Nullable<UInt16>, ConvertErrorHandling)
ObjectValueConversion.AsInt(Object, Int32, ConvertErrorHandling)
ObjectValueConversion.AsNullableInt(Object, Nullable<Int32>, ConvertErrorHandling)
ObjectValueConversion.AsUInt(Object, UInt32, ConvertErrorHandling)
ObjectValueConversion.AsNullableUInt(Object, Nullable<UInt32>, ConvertErrorHandling)
ObjectValueConversion.AsLong(Object, Int64, ConvertErrorHandling)
ObjectValueConversion.AsNullableLong(Object, Nullable<Int64>, ConvertErrorHandling)
ObjectValueConversion.AsULong(Object, UInt64, ConvertErrorHandling)
ObjectValueConversion.AsNullableULong(Object, Nullable<UInt64>, ConvertErrorHandling)
ObjectValueConversion.AsDouble(Object, Double, ConvertErrorHandling)
ObjectValueConversion.AsNullableDouble(Object, Nullable<Double>, ConvertErrorHandling)
ObjectValueConversion.AsFloat(Object, Single, ConvertErrorHandling)
ObjectValueConversion.AsNullableFloat(Object, Nullable<Single>, ConvertErrorHandling)
ObjectValueConversion.AsDecimal(Object, Decimal, ConvertErrorHandling)
ObjectValueConversion.AsNullableDecimal(Object, Nullable<Decimal>, ConvertErrorHandling)
ObjectValueConversion.AsBool(Object, Boolean, ConvertErrorHandling)
ObjectValueConversion.AsNullableBool(Object, Nullable<Boolean>, ConvertErrorHandling)
ObjectValueConversion.AsGUID(Object, Guid, ConvertErrorHandling)
ObjectValueConversion.AsNullableGUID(Object, Nullable<Guid>, ConvertErrorHandling)
ObjectValueConversion.AsDateTime(Object)
ObjectValueConversion.AsDateTime(Object, DateTime, ConvertErrorHandling)
ObjectValueConversion.AsNullableDateTime(Object, Nullable<DateTime>, ConvertErrorHandling)
ObjectValueConversion.AsGDID(Object)
ObjectValueConversion.AsGDID(Object, GDID, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDID(Object, Nullable<GDID>, ConvertErrorHandling)
ObjectValueConversion.AsGDIDSymbol(Object)
ObjectValueConversion.AsGDIDSymbol(Object, GDIDSymbol, ConvertErrorHandling)
ObjectValueConversion.AsNullableGDIDSymbol(Object, Nullable<GDIDSymbol>, ConvertErrorHandling)
ObjectValueConversion.AsTimeSpan(Object)
ObjectValueConversion.AsTimeSpan(Object, TimeSpan, ConvertErrorHandling)
ObjectValueConversion.AsNullableTimeSpan(Object, Nullable<TimeSpan>, ConvertErrorHandling)
ObjectValueConversion.AsEnum<TEnum>(Object, TEnum, ConvertErrorHandling)
ObjectValueConversion.AsNullableEnum<TEnum>(Object, Nullable<TEnum>, ConvertErrorHandling)
ObjectValueConversion.AsUri(Object, Uri, ConvertErrorHandling)
LookAheadExtensions.AsLookAheadEnumerable<T>(IEnumerable<T>)
JSONExtensions.ToJSON(Object, JSONWritingOptions)
JSONExtensions.ToJSON(Object, TextWriter, JSONWritingOptions)
JSONExtensions.ToJSON(Object, Stream, JSONWritingOptions, Encoding)
ErlObject.ToErlObject(Object)
ErlObject.ToErlObject(Object, ErlTypeOrder, Boolean)
Back to top Copyright © 2006-2018 Agnicore Inc
Generated by DocFX