public class CacheManager extends Object implements ICacheManager
| Modifier and Type | Class and Description |
|---|---|
protected class |
CacheManager.CacheCreateHandle
This is the local implementation of ICacheCreateHandle
|
protected class |
CacheManager.CacheHandle
This is the local implementation of ICacheHandle.
|
protected class |
CacheManager.CacheTransactionHandle
This is the class the cache manager uses to keep track of transaction
relationships and data.
|
| Modifier and Type | Field and Description |
|---|---|
static String |
_rcsid |
protected static GeneralCache |
cache |
protected static String |
cacheLockPrefix |
protected ILockManager |
lockManager |
protected HashMap |
transactionHash |
| Constructor and Description |
|---|
CacheManager(IThreadContext context) |
| Modifier and Type | Method and Description |
|---|---|
void |
commitTransaction(String transactionID)
Commit a cache transaction.
|
ICacheHandle |
enterCache(ICacheDescription[] locateObjectDescriptions,
StringSet invalidateKeys,
String transactionID)
Second way of doing cache management.
|
ICacheCreateHandle |
enterCreateSection(ICacheHandle handle)
Enter a creation critical section.
|
void |
expireObjects(long currentTimestamp)
Timed invalidation.
|
void |
findObjectsAndExecute(ICacheDescription[] locateObjectDescriptions,
StringSet invalidateKeys,
ICacheExecutor execObject,
String transactionID)
Locate or create a set of objects in the cached object pool, and/or destroy and invalidate
the same or other objects.
|
protected boolean |
hasExpired(String key,
long createTime)
Check if object has expired (by looking at file system).
|
void |
invalidateKeys(ICacheHandle handle)
Invalidate keys.
|
void |
leaveCache(ICacheHandle handle)
Leave the cache.
|
void |
leaveCreateSection(ICacheCreateHandle handle)
Leave the create section.
|
Object |
lookupObject(ICacheCreateHandle handle,
ICacheDescription objectDescription)
Lookup an object.
|
protected void |
performInvalidation(StringSet keys)
Perform an invalidation.
|
protected long |
readSharedData(String key)
Read an invalidation file contents.
|
protected void |
resetObjectExpiration(ICacheDescription objectDescription,
long currentTime)
Set object's expiration and LRU.
|
void |
rollbackTransaction(String transactionID)
Roll back a cache transaction.
|
void |
saveObject(ICacheCreateHandle handle,
ICacheDescription objectDescription,
Object object)
Save a newly created object.
|
void |
startTransaction(String startingTransactionID,
String enclosingTransactionID)
Begin a cache transaction.
|
protected void |
writeSharedData(String key,
long value)
Write the invalidation file contents.
|
public static final String _rcsid
protected static final String cacheLockPrefix
protected ILockManager lockManager
protected static GeneralCache cache
protected HashMap transactionHash
public CacheManager(IThreadContext context) throws ManifoldCFException
ManifoldCFExceptionpublic void findObjectsAndExecute(ICacheDescription[] locateObjectDescriptions, StringSet invalidateKeys, ICacheExecutor execObject, String transactionID) throws ManifoldCFException
findObjectsAndExecute in interface ICacheManagerlocateObjectDescriptions - is a set of description objects that uniquely describe the objects needed.invalidateKeys - is the set of keys to invalidate at the end of the execution.execObject - is the cache execution object whose create() or execute() methods will
be called.transactionID - is the current transaction identifier, or null. Objects created within this call
will be associated with this transaction; they will be purged from the cache should the transaction
be rolled back.ManifoldCFExceptionpublic ICacheHandle enterCache(ICacheDescription[] locateObjectDescriptions, StringSet invalidateKeys, String transactionID) throws ManifoldCFException
enterCache in interface ICacheManagerlocateObjectDescriptions - is a set of description objects that uniquely describe the objects needed.
May be null if no objects are desired.invalidateKeys - are the keys to invalidate after successful execution. May be null.transactionID - is the current transaction identifier, or null. Objects created within this block
will be associated with this transaction; they will be purged from the cache should the transaction
be rolled back.ManifoldCFExceptionpublic ICacheCreateHandle enterCreateSection(ICacheHandle handle) throws ManifoldCFException
enterCreateSection in interface ICacheManagerhandle - is the cache handle.ManifoldCFExceptionpublic Object lookupObject(ICacheCreateHandle handle, ICacheDescription objectDescription) throws ManifoldCFException
lookupObject in interface ICacheManagerhandle - is the handle to use for the create.objectDescription - is the description of the object to look up.ManifoldCFExceptionprotected boolean hasExpired(String key, long createTime) throws ManifoldCFException
key - is the invalidation key.createTime - is the creation time.ManifoldCFExceptionprotected void resetObjectExpiration(ICacheDescription objectDescription, long currentTime)
objectDescription - is the description object.currentTime - is the current time in milliseconds since epoch.public void saveObject(ICacheCreateHandle handle, ICacheDescription objectDescription, Object object) throws ManifoldCFException
saveObject in interface ICacheManagerhandle - is the create handle.objectDescription - is the object description.object - is the object.ManifoldCFExceptionpublic void leaveCreateSection(ICacheCreateHandle handle) throws ManifoldCFException
leaveCreateSection in interface ICacheManagerhandle - is the handle created by the corresponding enterCreateSection() method.ManifoldCFExceptionpublic void invalidateKeys(ICacheHandle handle) throws ManifoldCFException
invalidateKeys in interface ICacheManagerhandle - is the cache handle. Does nothing if a null set of keys was passed in.ManifoldCFExceptionprotected void performInvalidation(StringSet keys) throws ManifoldCFException
keys - is the set of keys to invalidate.ManifoldCFExceptionpublic void leaveCache(ICacheHandle handle) throws ManifoldCFException
leaveCache in interface ICacheManagerhandle - is the handle of the cache we are leaving.ManifoldCFExceptionpublic void startTransaction(String startingTransactionID, String enclosingTransactionID) throws ManifoldCFException
startTransaction in interface ICacheManagerstartingTransactionID - is the id of the transaction that is starting.enclosingTransactionID - is the id of the transaction that is in effect, or null.ManifoldCFExceptionpublic void commitTransaction(String transactionID) throws ManifoldCFException
commitTransaction in interface ICacheManagertransactionID - is the id of the transaction that is ending.ManifoldCFExceptionpublic void rollbackTransaction(String transactionID) throws ManifoldCFException
rollbackTransaction in interface ICacheManagertransactionID - is the id of the transaction that is ending.ManifoldCFExceptionpublic void expireObjects(long currentTimestamp)
throws ManifoldCFException
expireObjects in interface ICacheManagercurrentTimestamp - is the current time in milliseconds since epoch.ManifoldCFExceptionprotected long readSharedData(String key) throws ManifoldCFException
key - is the cache key name.ManifoldCFExceptionprotected void writeSharedData(String key, long value) throws ManifoldCFException
key - is the cache key name.value - is the invalidation timestamp.ManifoldCFException