public interface BackingMapManager
A custom implementation may return a LocalCache
in order to size-restrict the cache or force automatic expiry of cached data.
Currently, the "Distributed" and "Optimistic" CacheService implementations accept custom implementations of the BackingMapManager.
If the BackingMapManager object also implements XmlConfigurable
interface then the XmlConfigurable.setConfig(XmlElement)
method on it is called every time the configuration xml is changed by other cluster members.
Very important note: all methods of this interface are called on a thread associated with the corresponding CacheService and any significant delay will negatively affect the performance of this service around the cluster.
Modifier and Type | Method and Description |
---|---|
ConfigurableCacheFactory |
getCacheFactory()
Obtain the "container" ConfigurableCacheFactory that created this manager and which this manager is bound to.
|
BackingMapManagerContext |
getContext()
Determine the current BackingMapManagerContext for this BackingMapManager.
|
StorageAccessAuthorizer |
getStorageAccessAuthorizer(String sName)
Determine the
StorageAccessAuthorizer that is used by a CacheService to secure access to the NamedCache with the specified name. |
void |
init(BackingMapManagerContext context)
Called by a CacheService to indicate to this manager that the manager is being associated with the CacheService.
|
Map |
instantiateBackingMap(String sName)
Instantiate a [thread safe] Map that should be used by a CacheService to store cached values for a NamedCache with the specified name.
|
boolean |
isBackingMapPersistent(String sName)
Determine if the contents of the Map that is used by a CacheService to store cached values for a NamedCache with the specified name should be persisted.
|
boolean |
isBackingMapSlidingExpiry(String sName)
Determine if the Map that is used by a CacheService to store cached values for a NamedCache with specified name enables the sliding expiry - the expiry delay being extended by the read operations.
|
void |
releaseBackingMap(String sName, Map map)
Release the specified Map that was created using the
instantiateBackingMap(String) method. |
void init(BackingMapManagerContext context)
Important note: BackingMapManager cannot be associated with more then one instance of a CacheService. However, in a situation when a CacheService automatically restarts, it is possible that this manager instance is re-used by a newly created (restarted) CacheService calling this method once again providing a new context.
context
- the BackingMapManagerContext object for this BackingMapManagerConfigurableCacheFactory getCacheFactory()
BackingMapManagerContext getContext()
Map instantiateBackingMap(String sName)
If the contents of the Map can be modified by anything other than the CacheService itself (e.g. if the Map automatically expires its entries periodically or size-limits its contents), then the returned object must implement the ObservableMap interface.
sName
- the name of the NamedCache for which this backing map is being createdboolean isBackingMapPersistent(String sName)
sName
- the name of the NamedCacheboolean isBackingMapSlidingExpiry(String sName)
sName
- the name of the NamedCacheStorageAccessAuthorizer getStorageAccessAuthorizer(String sName)
StorageAccessAuthorizer
that is used by a CacheService to secure access to the NamedCache with the specified name.sName
- the name of the NamedCacheStorageAccessAuthorizer
or null if the authorizer is not configuredRuntimeException
- if the StorageAccessAuthorizer
was configured, but not able to instantiatevoid releaseBackingMap(String sName, Map map)
instantiateBackingMap(String)
method. This method is invoked by the CacheService when the CacheService no longer requires the specified Map object.sName
- the name of the NamedCache for which the specified Map object has acted as the backing mapmap
- the Map object that is being released