|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface EntryFactory
A factory for constructing MVCCEntry instances for use in the InvocationContext.
Implementations of this interface would typically wrap an internal CacheEntry
with an MVCCEntry, optionally acquiring the necessary locks via the
LockManager.
| Method Summary | |
|---|---|
boolean |
acquireLock(InvocationContext ctx,
Object key)
Attempts to lock an entry if the lock isn't already held in the current scope, and records the lock in the context. |
void |
releaseLock(Object key)
|
CacheEntry |
wrapEntryForReading(InvocationContext ctx,
Object key)
Wraps an entry for reading. |
MVCCEntry |
wrapEntryForWriting(InvocationContext ctx,
InternalCacheEntry entry,
boolean createIfAbsent,
boolean forceLockIfAbsent,
boolean alreadyLocked,
boolean forRemoval,
boolean undeleteIfNeeded)
Wraps an entry for writing. |
MVCCEntry |
wrapEntryForWriting(InvocationContext ctx,
Object key,
boolean createIfAbsent,
boolean forceLockIfAbsent,
boolean alreadyLocked,
boolean forRemoval,
boolean undeleteIfNeeded)
Wraps an entry for writing. |
| Method Detail |
|---|
void releaseLock(Object key)
boolean acquireLock(InvocationContext ctx,
Object key)
throws InterruptedException,
TimeoutException
ctx - contextkey - Key to lock
InterruptedException - if interrupted
TimeoutException - if we are unable to acquire the lock after a specified timeout.
MVCCEntry wrapEntryForWriting(InvocationContext ctx,
Object key,
boolean createIfAbsent,
boolean forceLockIfAbsent,
boolean alreadyLocked,
boolean forRemoval,
boolean undeleteIfNeeded)
throws InterruptedException
ctx - current invocation contextkey - key to look up and wrapcreateIfAbsent - if true, an entry is created if it does not exist in the data container.forceLockIfAbsent - forces a lock even if the entry is absentalreadyLocked - if true, this hint prevents the method from acquiring any locks and the existence and ownership of the lock is presumed.forRemoval - if true, this hint informs this method that the lock is being acquired for removal.undeleteIfNeeded - if true, if the entry is found in the current scope (perhaps a transaction) and is deleted, it will be undeleted. If false, it will be considered deleted.
InterruptedException - when things go wrong, usually trying to acquire a lock
MVCCEntry wrapEntryForWriting(InvocationContext ctx,
InternalCacheEntry entry,
boolean createIfAbsent,
boolean forceLockIfAbsent,
boolean alreadyLocked,
boolean forRemoval,
boolean undeleteIfNeeded)
throws InterruptedException
ctx - current invocation contextentry - an internal entry to wrapcreateIfAbsent - if true, an entry is created if it does not exist in the data container.forceLockIfAbsent - forces a lock even if the entry is absentalreadyLocked - if true, this hint prevents the method from acquiring any locks and the existence and ownership of the lock is presumed.forRemoval - if true, this hint informs this method that the lock is being acquired for removal.undeleteIfNeeded - if true, if the entry is found in the current scope (perhaps a transaction) and is deleted, it will be undeleted. If false, it will be considered deleted. * @return an MVCCEntry instance
InterruptedException - when things go wrong, usually trying to acquire a lock
CacheEntry wrapEntryForReading(InvocationContext ctx,
Object key)
throws InterruptedException
CacheEntry but certain combinations of isolation
levels and the presence of an ongoing JTA transaction may force this to be a proper, wrapped MVCCEntry. The entry
is also typically placed in the invocation context.
ctx - current invocation contextkey - key to look up and wrap
InterruptedException - when things go wrong, usually trying to acquire a lock
|
--> | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||