|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.eclipse.net4j.util.event.Notifier
org.eclipse.net4j.util.lifecycle.Lifecycle
org.eclipse.net4j.util.concurrent.RWOLockManager<OBJECT,CONTEXT>

Keeps track of locks on objects. Locks are owned by contexts. A particular combination of locks and their owners, for
a given object, is represented by instances of the 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.
| Nested Class Summary | |
|---|---|
static class |
RWOLockManager.LockState<OBJECT,CONTEXT>
Represents a combination of locks for one OBJECT. |
| Nested classes/interfaces inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager |
|---|
IRWLockManager.LockType |
| Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle |
|---|
ILifecycle.DeferrableActivation |
| Field Summary |
|---|
| Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle |
|---|
USE_LABEL |
| Fields inherited from interface org.eclipse.net4j.util.concurrent.IRWLockManager |
|---|
NO_WAIT, WAIT |
| Constructor Summary | |
|---|---|
RWOLockManager()
|
|
| Method Summary | |
|---|---|
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. |
| Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle |
|---|
activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, doDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString |
| Methods inherited from class org.eclipse.net4j.util.event.Notifier |
|---|
addListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, removeListener |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.eclipse.net4j.util.event.INotifier |
|---|
addListener, getListeners, hasListeners, removeListener |
| Constructor Detail |
|---|
public RWOLockManager()
| Method Detail |
|---|
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 void changeContext(CONTEXT oldContext,
CONTEXT newContext)
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)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||