public class RWOLockManager<OBJECT,CONTEXT> extends Lifecycle implements IRWOLockManager<OBJECT,CONTEXT>
RWOLockManager.LockState
class. This class is also repsonsible for
deciding whether or not a new lock can be granted, based on the locks already present.Modifier and Type | Class and Description |
---|---|
static class |
RWOLockManager.LockState<OBJECT,CONTEXT>
Represents a combination of locks for one OBJECT.
|
IRWLockManager.LockType
ILifecycle.DeferrableActivation
NO_WAIT, WAIT
Constructor and Description |
---|
RWOLockManager() |
Modifier and Type | Method and Description |
---|---|
protected void |
changeContext(CONTEXT oldContext,
CONTEXT newContext) |
protected Map<CONTEXT,Set<RWOLockManager.LockState<OBJECT,CONTEXT>>> |
createContextToLocksMap() |
protected Map<OBJECT,RWOLockManager.LockState<OBJECT,CONTEXT>> |
createObjectToLocksMap() |
protected long |
currentTimeMillis() |
protected Map<CONTEXT,Set<RWOLockManager.LockState<OBJECT,CONTEXT>>> |
getContextToLocksMap()
All access to the returned map must be properly synchronized on this
RWOLockManager . |
RWOLockManager.LockState<OBJECT,CONTEXT> |
getLockState(OBJECT key) |
protected Map<OBJECT,RWOLockManager.LockState<OBJECT,CONTEXT>> |
getObjectToLocksMap()
All access to the returned map must be properly synchronized on this
RWOLockManager . |
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,
Collection<? extends OBJECT> objectsToLock,
long timeout) |
void |
lock(IRWLockManager.LockType type,
CONTEXT context,
OBJECT objectToLock,
long timeout) |
List<RWOLockManager.LockState<OBJECT,CONTEXT>> |
lock2(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToLock,
long timeout)
Adds locks of the given type, owned by the given context on the given objects.
|
void |
setLockState(OBJECT key,
RWOLockManager.LockState<OBJECT,CONTEXT> lockState) |
void |
unlock(CONTEXT context)
Attempts to release all locks(read and write) for a given context.
|
void |
unlock(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToUnlock)
Attempts to release for a given locktype, context and objects.
|
List<RWOLockManager.LockState<OBJECT,CONTEXT>> |
unlock2(CONTEXT context)
Removes all locks owned by the given context on any objects.
|
List<RWOLockManager.LockState<OBJECT,CONTEXT>> |
unlock2(CONTEXT context,
Collection<? extends OBJECT> objectsToUnlock)
Removes all locks owned by the given context.
|
List<RWOLockManager.LockState<OBJECT,CONTEXT>> |
unlock2(IRWLockManager.LockType type,
CONTEXT context,
Collection<? extends OBJECT> objectsToUnlock)
Removes all locks of the given type, owned by the given context on the given objects.
|
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString
addListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, removeListener
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addListener, getListeners, hasListeners, removeListener
public void lock(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToLock, long timeout) throws InterruptedException
lock
in interface IRWLockManager<OBJECT,CONTEXT>
InterruptedException
public List<RWOLockManager.LockState<OBJECT,CONTEXT>> lock2(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToLock, long timeout) throws InterruptedException
IRWOLockManager
lock2
in interface IRWOLockManager<OBJECT,CONTEXT>
InterruptedException
public void lock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock, long timeout) throws InterruptedException
lock
in interface IRWLockManager<OBJECT,CONTEXT>
InterruptedException
public void unlock(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToUnlock)
IRWLockManager
unlock
in interface IRWLockManager<OBJECT,CONTEXT>
public List<RWOLockManager.LockState<OBJECT,CONTEXT>> unlock2(CONTEXT context, Collection<? extends OBJECT> objectsToUnlock)
IRWOLockManager
unlock2
in interface IRWOLockManager<OBJECT,CONTEXT>
public List<RWOLockManager.LockState<OBJECT,CONTEXT>> unlock2(IRWLockManager.LockType type, CONTEXT context, Collection<? extends OBJECT> objectsToUnlock)
IRWOLockManager
unlock2
in interface IRWOLockManager<OBJECT,CONTEXT>
public void unlock(CONTEXT context)
IRWLockManager
unlock
in interface IRWLockManager<OBJECT,CONTEXT>
public List<RWOLockManager.LockState<OBJECT,CONTEXT>> unlock2(CONTEXT context)
IRWOLockManager
unlock2
in interface IRWOLockManager<OBJECT,CONTEXT>
public boolean hasLock(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)
hasLock
in interface IRWLockManager<OBJECT,CONTEXT>
public boolean hasLockByOthers(IRWLockManager.LockType type, CONTEXT context, OBJECT objectToLock)
hasLockByOthers
in interface IRWLockManager<OBJECT,CONTEXT>
protected long currentTimeMillis()
protected Map<OBJECT,RWOLockManager.LockState<OBJECT,CONTEXT>> createObjectToLocksMap()
protected Map<CONTEXT,Set<RWOLockManager.LockState<OBJECT,CONTEXT>>> createContextToLocksMap()
protected final Map<OBJECT,RWOLockManager.LockState<OBJECT,CONTEXT>> getObjectToLocksMap()
RWOLockManager
.protected final Map<CONTEXT,Set<RWOLockManager.LockState<OBJECT,CONTEXT>>> getContextToLocksMap()
RWOLockManager
.public RWOLockManager.LockState<OBJECT,CONTEXT> getLockState(OBJECT key)
public void setLockState(OBJECT key, RWOLockManager.LockState<OBJECT,CONTEXT> lockState)
Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.