org.jboss.cache.lock
Interface NodeLock

All Known Implementing Classes:
IdentityLock

public interface NodeLock

Interface for a lock for nodes.


Nested Class Summary
static class NodeLock.LockType
           
 
Method Summary
 boolean acquire(java.lang.Object caller, long timeout, NodeLock.LockType lock_type)
           
 java.util.Set<NodeLock> acquireAll(java.lang.Object caller, long timeout, NodeLock.LockType lock_type)
          Recursively acquire locks for this node and all subnodes.
 boolean acquireReadLock(java.lang.Object caller, long timeout)
          Acquires a read lock with a timeout period of timeout milliseconds.
 boolean acquireWriteLock(java.lang.Object caller, long timeout)
          Acquires a write lock with a timeout of timeout milliseconds.
 java.util.Set getReaderOwners()
          Returns a copy of the reader lock owner in List.
 java.lang.Object getWriterOwner()
          Returns the writer lock owner object.
 boolean isLocked()
          Check if there is a read or write lock
 boolean isOwner(java.lang.Object o)
          Returns true if the object is the lock owner.
 boolean isReadLocked()
          Check if there is a read lock.
 boolean isWriteLocked()
          Check if there is a write lock.
 void printLockInfo(java.lang.StringBuffer sb, int indent)
           
 void release(java.lang.Object caller)
          Releases the lock held by the owner.
 void releaseAll()
          Releases all locks associated with this instance.
 void releaseAll(java.lang.Object owner)
          Releases all locks with this owner.
 

Method Detail

getReaderOwners

java.util.Set getReaderOwners()
Returns a copy of the reader lock owner in List. Size is zero is not available. Note that this list is synchronized.

Returns:
Set of readers

getWriterOwner

java.lang.Object getWriterOwner()
Returns the writer lock owner object. Null if not available.

Returns:
Object owner

acquireWriteLock

boolean acquireWriteLock(java.lang.Object caller,
                         long timeout)
                         throws LockingException,
                                TimeoutException,
                                java.lang.InterruptedException
Acquires a write lock with a timeout of timeout milliseconds. Note that if the current owner owns a read lock, it will be upgraded automatically. However, if upgrade fails, i.e., timeout, the read lock will be released automatically.

Parameters:
caller - Can't be null.
timeout -
Returns:
boolean True if lock was acquired and was not held before, false if lock was held
Throws:
LockingException
TimeoutException
java.lang.InterruptedException

acquireReadLock

boolean acquireReadLock(java.lang.Object caller,
                        long timeout)
                        throws LockingException,
                               TimeoutException,
                               java.lang.InterruptedException
Acquires a read lock with a timeout period of timeout milliseconds.

Parameters:
caller - Can't be null.
timeout -
Returns:
boolean True if lock was acquired and was not held before, false if lock was held
Throws:
LockingException
TimeoutException
java.lang.InterruptedException

release

void release(java.lang.Object caller)
Releases the lock held by the owner.

Parameters:
caller - Can't be null.

releaseAll

void releaseAll()
Releases all locks associated with this instance.


releaseAll

void releaseAll(java.lang.Object owner)
Releases all locks with this owner.


isReadLocked

boolean isReadLocked()
Check if there is a read lock.


isWriteLocked

boolean isWriteLocked()
Check if there is a write lock.


isLocked

boolean isLocked()
Check if there is a read or write lock


isOwner

boolean isOwner(java.lang.Object o)
Returns true if the object is the lock owner.


acquire

boolean acquire(java.lang.Object caller,
                long timeout,
                NodeLock.LockType lock_type)
                throws LockingException,
                       TimeoutException,
                       java.lang.InterruptedException
Throws:
LockingException
TimeoutException
java.lang.InterruptedException

acquireAll

java.util.Set<NodeLock> acquireAll(java.lang.Object caller,
                                   long timeout,
                                   NodeLock.LockType lock_type)
                                   throws LockingException,
                                          TimeoutException,
                                          java.lang.InterruptedException
Recursively acquire locks for this node and all subnodes.

Parameters:
caller - lock owner
timeout - time to wait
lock_type - type of lock
Returns:
locks acquired
Throws:
LockingException
TimeoutException
java.lang.InterruptedException

printLockInfo

void printLockInfo(java.lang.StringBuffer sb,
                   int indent)