Table of Contents

Class ChangeAwareCache<TObject, TKey>

Namespace
DynamicData
Assembly
DynamicData.dll

A cache which captures all changes which are made to it. These changes are recorded until CaptureChanges() at which point thw changes are cleared. Used for creating custom operators.

public sealed class ChangeAwareCache<TObject, TKey> : ICache<TObject, TKey>, IQuery<TObject, TKey> where TObject : notnull where TKey : notnull

Type Parameters

TObject

The value of the cache.

TKey

The key of the cache.

Inheritance
ChangeAwareCache<TObject, TKey>
Implements
ICache<TObject, TKey>
IQuery<TObject, TKey>
Extension Methods
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)

Constructors

ChangeAwareCache()

Initializes a new instance of the ChangeAwareCache<TObject, TKey> class.

public ChangeAwareCache()

ChangeAwareCache(Dictionary<TKey, TObject>)

Initializes a new instance of the ChangeAwareCache<TObject, TKey> class.

public ChangeAwareCache(Dictionary<TKey, TObject> data)

Parameters

data Dictionary<TKey, TObject>

Data to populate the cache with.

ChangeAwareCache(int)

Initializes a new instance of the ChangeAwareCache<TObject, TKey> class.

public ChangeAwareCache(int capacity)

Parameters

capacity int

The capacity of the initial items.

Properties

Count

Gets the count.

public int Count { get; }

Property Value

int

Items

Gets the items.

public IEnumerable<TObject> Items { get; }

Property Value

IEnumerable<TObject>

KeyValues

Gets the items together with their keys.

public IEnumerable<KeyValuePair<TKey, TObject>> KeyValues { get; }

Property Value

IEnumerable<KeyValuePair<TKey, TObject>>

The key values.

Keys

Gets the keys.

public IEnumerable<TKey> Keys { get; }

Property Value

IEnumerable<TKey>

Methods

Add(TObject, TKey)

Adds the item to the cache without checking whether there is an existing value in the cache.

public void Add(TObject item, TKey key)

Parameters

item TObject

The item to add.

key TKey

The key to add.

AddOrUpdate(TObject, TKey)

Adds or updates the item using the specified key.

public void AddOrUpdate(TObject item, TKey key)

Parameters

item TObject

The item.

key TKey

The key.

CaptureChanges()

Create a change set from recorded changes and clears known changes.

public ChangeSet<TObject, TKey> CaptureChanges()

Returns

ChangeSet<TObject, TKey>

A change set with the key/value changes.

Clear()

Clears all items.

public void Clear()

Clone(IChangeSet<TObject, TKey>)

Clones the cache from the specified changes.

public void Clone(IChangeSet<TObject, TKey> changes)

Parameters

changes IChangeSet<TObject, TKey>

The changes.

Lookup(TKey)

Lookup a single item using the specified key.

public Optional<TObject> Lookup(TKey key)

Parameters

key TKey

The key.

Returns

Optional<TObject>

The looked up value.

Remarks

Fast indexed lookup.

Refresh()

Raises an evaluate change for all items in the cache.

public void Refresh()

Refresh(IEnumerable<TKey>)

Raises an evaluate change for the specified keys.

public void Refresh(IEnumerable<TKey> keys)

Parameters

keys IEnumerable<TKey>

The keys to refresh.

Refresh(TKey)

Raises an evaluate change for the specified key.

public void Refresh(TKey key)

Parameters

key TKey

The key.

Remove(IEnumerable<TKey>)

Removes the item matching the specified keys.

public void Remove(IEnumerable<TKey> keys)

Parameters

keys IEnumerable<TKey>

The keys.

Remove(TKey)

Removes the item matching the specified key.

public void Remove(TKey key)

Parameters

key TKey

The key.

See Also

ICache<TObject, TKey>