Class IntermediateCache<TObject, TKey>
- Namespace
- Dynamic
Data
- 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
-
IIntermediate
Cache <TObject, TKey>IObservableCache <TObject, TKey>IConnectableCache <TObject, TKey>
- Extension Methods
Constructors
IntermediateCache()
Initializes a new instance of the IntermediateCache<TObject, TKey> class.
IntermediateCache(IObservable<IChangeSet<TObject, TKey>>)
Initializes a new instance of the IntermediateCache<TObject, TKey> class.
Parameters
source
IObservable<IChangeSet <TObject, TKey>>The source.
Exceptions
- Argument
Null Exception source.
Properties
Count
Gets the total count of cached items.
Property Value
CountChanged
Gets a count changed observable starting with the current count.
Property Value
Items
Gets the Items.
Property Value
- IRead
Only <TObject>List
KeyValues
Gets the key value pairs.
Property Value
- IRead
Only <TKey, TObject>Dictionary
Keys
Gets the keys.
Property Value
- IRead
Only <TKey>List
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<IChange
Set <TObject, TKey>> An observable that emits the change set.
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.
Parameters
updateAction
Action<ICacheUpdater <TObject, TKey>>The update action.
Lookup(TKey)
Lookup a single item using the specified 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.
Parameters
Returns
- IObservable<IChange
Set <TObject, TKey>> An observable that emits the change set.
SuspendCount()
Suspends count notifications.
Returns
- IDisposable
A disposable which when disposed re-activates count notifications.
SuspendNotifications()
Suspends notifications. When disposed, a reset notification is fired.
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).
Parameters
key
TKeyThe key.
Returns
- IObservable<Change<TObject, TKey>>
An observable that emits the change set.