Class IntermediateCache<TObject, TKey>
- Namespace
- DynamicData
- Assembly
- DynamicData.dll
Cache designed to be used for custom operator construction. It requires no key to be specified but instead relies on the user specifying the key when amending data.
public sealed class IntermediateCache<TObject, TKey> : IIntermediateCache<TObject, TKey>, IObservableCache<TObject, TKey>, IConnectableCache<TObject, TKey>, IDisposable, INotifyCollectionChangedSuspender where TObject : notnull where TKey : notnull
Type Parameters
TObject
The type of the object.
TKey
The type of the key.
- Inheritance
-
IntermediateCache<TObject, TKey>
- Implements
-
IIntermediateCache<TObject, TKey>IObservableCache<TObject, TKey>IConnectableCache<TObject, TKey>
- Extension Methods
Constructors
IntermediateCache()
Initializes a new instance of the IntermediateCache<TObject, TKey> class.
public IntermediateCache()
IntermediateCache(IObservable<IChangeSet<TObject, TKey>>)
Initializes a new instance of the IntermediateCache<TObject, TKey> class.
public IntermediateCache(IObservable<IChangeSet<TObject, TKey>> source)
Parameters
source
IObservable<IChangeSet<TObject, TKey>>The source.
Exceptions
- ArgumentNullException
source.
Properties
Count
Gets the total count of cached items.
public int Count { get; }
Property Value
CountChanged
Gets a count changed observable starting with the current count.
public IObservable<int> CountChanged { get; }
Property Value
Items
Gets the Items.
public IReadOnlyList<TObject> Items { get; }
Property Value
- IReadOnlyList<TObject>
KeyValues
Gets the key value pairs.
public IReadOnlyDictionary<TKey, TObject> KeyValues { get; }
Property Value
- IReadOnlyDictionary<TKey, TObject>
Keys
Gets the keys.
public IReadOnlyList<TKey> Keys { get; }
Property Value
- IReadOnlyList<TKey>
Methods
Connect(Func<TObject, bool>?, bool)
Returns a filtered stream of cache changes preceded with the initial filtered state.
public IObservable<IChangeSet<TObject, TKey>> Connect(Func<TObject, bool>? predicate = null, bool suppressEmptyChangeSets = true)
Parameters
predicate
Func<TObject, bool>The result will be filtered using the specified predicate.
suppressEmptyChangeSets
boolBy default, empty change sets are not emitted. Set this value to false to emit empty change sets.
Returns
- IObservable<IChangeSet<TObject, TKey>>
An observable that emits the change set.
Dispose()
public void Dispose()
Edit(Action<ICacheUpdater<TObject, TKey>>)
Action to apply a batch update to a cache. Multiple update methods can be invoked within a single batch operation. These operations are invoked within the cache's lock and is therefore thread safe. The result of the action will produce a single change set.
public void Edit(Action<ICacheUpdater<TObject, TKey>> updateAction)
Parameters
updateAction
Action<ICacheUpdater<TObject, TKey>>The update action.
Lookup(TKey)
Lookup a single item using the specified key.
public Optional<TObject> Lookup(TKey key)
Parameters
key
TKeyThe key.
Returns
- Optional<TObject>
An optional with the looked up value.
Remarks
Fast indexed lookup.
Preview(Func<TObject, bool>?)
Returns a filtered stream of cache changes. Unlike Connect(), the returned observable is not prepended with the caches initial items.
public IObservable<IChangeSet<TObject, TKey>> Preview(Func<TObject, bool>? predicate = null)
Parameters
Returns
- IObservable<IChangeSet<TObject, TKey>>
An observable that emits the change set.
SuspendCount()
Suspends count notifications.
public IDisposable SuspendCount()
Returns
- IDisposable
A disposable which when disposed re-activates count notifications.
SuspendNotifications()
Suspends notifications. When disposed, a reset notification is fired.
public IDisposable SuspendNotifications()
Returns
- IDisposable
A disposable which when disposed re-activates notifications.
Watch(TKey)
Returns an observable of any changes which match the specified key. The sequence starts with the initial item in the cache (if there is one).
public IObservable<Change<TObject, TKey>> Watch(TKey key)
Parameters
key
TKeyThe key.
Returns
- IObservable<Change<TObject, TKey>>
An observable that emits the change set.