Namespace CacheManager.Core.Internal
Classes
BackplaneMessage
Implements a simple message which can be send as a string to the server.
BaseCache<TCacheValue>
The BaseCache class implements the overall logic of this cache library and delegates the concrete implementation of how e.g. add, get or remove should work to a derived class.
To use this base class simply override the abstract methods for Add, Get, Put and Remove.
All other methods defined by ICache
will be delegated to those methods.
BaseCacheHandle<TCacheValue>
The BaseCacheHandle
implements all the logic which might be common for all the cache
handles. It abstracts the ICache<TCacheValue> interface and defines new properties and
methods the implementer must use.
Actually it is not advisable to not use BaseCacheHandle<TCacheValue>.
BinaryCacheSerializer
Basic binary serialization implementation of the ICacheSerializer. This implementation will be used in case no other serializer is configured for the cache manager and serialization is needed (only distributed caches will have to serialize the cache value). Binary serialization will not be available in some environments.
CacheActionEventArgs
Event arguments for cache actions.
CacheBackplane
In CacheManager, a cache backplane is used to keep in process and distributed caches in
sync.
If the cache manager runs inside multiple nodes or applications accessing the
same distributed cache, and an in process cache is configured to be in front of the
distributed cache handle. All Get calls will hit the in process cache.
Now when an
item gets removed for example by one client, all other clients still have that cache item
available in the in process cache.
This could lead to errors and unexpected behavior,
therefore a cache backplane will send a message to all other cache clients to also remove
that item.
The same mechanism will apply to any Update, Put, Remove, Clear or ClearRegion call of the cache.
CacheClearEventArgs
Event arguments for cache clear events.
CacheClearRegionEventArgs
Event arguments for clear region events.
CacheItemRemovedEventArgs
Event arguments for cache actions.
CacheSerializer
Base implementation for cache serializers.
CacheStats<TCacheValue>
Stores statistical information for a BaseCacheHandle<TCacheValue>.
Statistical counters are stored globally for the BaseCacheHandle<TCacheValue> and for each cache region!
To retrieve a counter for a region only, specify the optional region attribute of GetStatistics.
DictionaryCacheHandle<TCacheValue>
This handle is for internal use and testing. It does not implement any expiration.
RequiresSerializerAttribute
Can be used to decorate cache handles which require serialization
SerializerCacheItem<T>
Basic abstraction for serializers to work with cache items.
TypeCache
Used by serializers to find value types
UpdateItemResult
Helper class to create correct instances.
UpdateItemResult<TCacheValue>
Used by cache handle implementations to let the cache manager know what happened during an update operation.
Interfaces
ICacheItemConverter
Simple converter contract used by the serializer cache item. Serializers will use that to convert back to The CacheItem<T>.
ICacheItemProperties
Contract which exposes only the properties of the CacheItem<T> without T value.
ICacheSerializer
Defines the contract for serialization of the cache value and cache items. The cache item serialization should be separated in case the serialization technology does not support immutable objects; in that case CacheItem<T> might not be serializable directly and the implementation has to wrap the cache item.
Enums
BackplaneAction
Defines the possible actions of the backplane message.
CacheActionEventArgOrigin
The origin enum indicates if the cache event was triggered locally or through the backplane.
CacheItemChangedEventAction
The enum defines the actual operation used to change the value in the cache.
CacheItemRemovedReason
A flag indicating the reason when an item got removed from the cache.
CacheStatsCounterType
Defines the different counter types the cache manager supports.
UpdateItemResultState
Represents that state of an update operation.