Interface IRWLockManager<OBJECT,CONTEXT>
-
- All Known Subinterfaces:
IRWOLockManager<OBJECT,CONTEXT>
- All Known Implementing Classes:
RWLockManager
,RWOLockManager
public interface IRWLockManager<OBJECT,CONTEXT>
Support Multiple reads/no write and upgrade lock from read to write. Many context could requestwrite
lock at the same time. It will privileges first context that has already aread
lock. If no one has any read lock, it's "first come first serve".- Since:
- 3.0
- Author:
- Eike Stepper
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
IRWLockManager.LockType
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
hasLock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)
boolean
hasLockByOthers(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)
void
lock(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToLock, long timeout)
void
lock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout)
void
unlock(CONTEXT context)
Attempts to release all locks(read and write) for a given context.void
unlock(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToUnlock)
Attempts to release for a given locktype, context and objects.
-
-
-
Field Detail
-
WAIT
static final int WAIT
- See Also:
- Constant Field Values
-
NO_WAIT
static final int NO_WAIT
- See Also:
- Constant Field Values
-
-
Method Detail
-
lock
void lock(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToLock, long timeout) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
lock
void lock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
unlock
void unlock(IRWLockManager.LockType type, CONTEXT context, java.util.Collection<? extends OBJECT> objectsToUnlock)
Attempts to release for a given locktype, context and objects.- Throws:
java.lang.IllegalMonitorStateException
- Unlocking objects without lock.
-
unlock
void unlock(CONTEXT context)
Attempts to release all locks(read and write) for a given context.
-
hasLock
boolean hasLock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)
-
hasLockByOthers
boolean hasLockByOthers(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)
-
-