Class LockFreeObservableCache<TObject, TKey>
- Namespace
- Dynamic
Data .Cache.Internal
- Assembly
- DynamicData.dll
An observable cache which exposes an update API. Used at the root of all observable chains.
public sealed class LockFreeObservableCache<TObject, TKey> : IObservableCache<TObject, TKey>, IConnectableCache<TObject, TKey>, IDisposable where TObject : notnull where TKey : notnull
Type Parameters
TObject
The type of the object.
TKey
The type of the key.
- Inheritance
-
LockFreeObservableCache<TObject, TKey>
- Implements
-
IObservable
Cache <TObject, TKey>IConnectableCache <TObject, TKey>
- Extension Methods
Constructors
LockFreeObservableCache()
Initializes a new instance of the LockFreeObservableCache<TObject, TKey> class.
LockFreeObservableCache(IObservable<IChangeSet<TObject, TKey>>)
Initializes a new instance of the LockFreeObservableCache<TObject, TKey> class.
Parameters
source
IObservable<IChangeSet <TObject, TKey>>The 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>>)
Edits the specified edit action.
Parameters
editAction
Action<ICacheUpdater <TObject, TKey>>The edit action.
Lookup(TKey)
Lookup a single item using the specified key.
Parameters
key
TKeyThe key.
Returns
- Optional<TObject>
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.
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 changes.