Class CacheStoreAdapter<TK, TV>
Cache storage convenience adapter. It provides default implementation for
bulk operations, such as LoadAll
, PutAll
and
RemoveAll
by sequentially calling corresponding Load
,
Put
and Remove
operations. Use this adapter whenever
such behaviour is acceptable. However in many cases it maybe more preferable
to take advantage of database batch update functionality, and therefore default
adapter implementation may not be the best option.
Note that LoadCache
method has empty implementation because it is
essentially up to the user to invoke it with specific arguments.
Inheritance
Namespace: Apache.Ignite.Core.Cache.Store
Assembly: Apache.Ignite.Core.dll
Syntax
public abstract class CacheStoreAdapter<TK, TV> : object, ICacheStore<TK, TV>, ICacheStore
Type Parameters
Name | Description |
---|---|
TK | Key type. |
TV | Value type. |
Methods
Delete(TK)
Delete the cache entry from the external resource.
Expiry of a cache entry is not a delete hence will not cause this method to be invoked.
This method is invoked even if no mapping for the key exists.
Declaration
public abstract void Delete(TK key)
Parameters
Type | Name | Description |
---|---|---|
TK | key | The key that is used for the delete operation. |
DeleteAll(IEnumerable<TK>)
Remove data and keys from the external resource for the given collection of keys, if present.
The order that individual deletes occur is undefined.
If this operation fails (by throwing an exception) after a partial success, the writer must remove any successfully written entries from the entries collection so that the caching implementation knows what succeeded and can mutate the cache.
Expiry of a cache entry is not a delete hence will not cause this method to be invoked.
This method may include keys even if there is no mapping for that key, in which case the data represented by that key should be removed from the underlying resource.
Declaration
public virtual void DeleteAll(IEnumerable<TK> keys)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<TK> | keys | a mutable collection of keys for entries to delete. Upon invocation, it contains the keys to delete for write-through. Upon return the collection must only contain the keys that were not successfully deleted. |
Load(TK)
Loads an object. Application developers should implement this method to customize the loading
of a value for a cache entry.
This method is called by a cache when a requested entry is not in the cache.
If the object can't be loaded null
should be returned.
Declaration
public abstract TV Load(TK key)
Parameters
Type | Name | Description |
---|---|---|
TK | key | The key identifying the object being loaded. |
Returns
Type | Description |
---|---|
TV | The value for the entry that is to be stored in the cache
or |
LoadAll(IEnumerable<TK>)
Loads multiple objects. Application developers should implement this method to customize the loading of cache entries. This method is called when the requested object is not in the cache. If an object can't be loaded, it is not returned in the resulting map.
Declaration
public virtual IEnumerable<KeyValuePair<TK, TV>> LoadAll(IEnumerable<TK> keys)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<TK> | keys | Keys identifying the values to be loaded. |
Returns
Type | Description |
---|---|
IEnumerable<KeyValuePair<TK, TV>> | A map of key, values to be stored in the cache. |
LoadCache(Action<TK, TV>, Object[])
Loads all values from underlying persistent storage. Note that keys are not passed, so it is up to implementation to figure out what to load. This method is called whenever LocalLoadCache(ICacheEntryFilter<TK, TV>, Object[]) method is invoked which is usually to preload the cache from persistent storage.
This method is optional, and cache implementation does not depend on this method to do anything.
For every loaded value method provided action should be called. The action will then make sure that the loaded value is stored in cache.
Declaration
public virtual void LoadCache(Action<TK, TV> act, params object[] args)
Parameters
Type | Name | Description |
---|---|---|
Action<TK, TV> | act | Action for loaded values. |
System.Object[] | args | Optional arguments passed to LocalLoadCache(ICacheEntryFilter<TK, TV>, Object[]) method. |
SessionEnd(Boolean)
Tells store to commit or rollback a transaction depending on the value of the
commit
parameter.
Declaration
public virtual void SessionEnd(bool commit)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | commit |
|
Write(TK, TV)
Write the specified value under the specified key to the external resource.
This method is intended to support both key/value creation and value update.
Declaration
public abstract void Write(TK key, TV val)
Parameters
Type | Name | Description |
---|---|---|
TK | key | Key to write. |
TV | val | Value to write. |
WriteAll(IEnumerable<KeyValuePair<TK, TV>>)
Writes all.
Declaration
public virtual void WriteAll(IEnumerable<KeyValuePair<TK, TV>> entries)
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<KeyValuePair<TK, TV>> | entries | The map. |