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.
|
default boolean |
isBackingMapPersistent(String sName,
boolean fSnapshot)
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 NamedCachedefault boolean isBackingMapPersistent(String sName, boolean fSnapshot)
sName
- the name of the NamedCachefSnapshot
- true if asked for the purpose of creating a snapshotboolean 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