org.jboss.cache.util.concurrent.locks
Class LockContainer<E>

java.lang.Object
  extended by org.jboss.cache.util.concurrent.locks.LockContainer<E>
Direct Known Subclasses:
OwnableReentrantLockContainer, ReentrantLockContainer

@ThreadSafe
public abstract class LockContainer<E>
extends Object

A container for locks. Used with lock striping.

Since:
3.0
Author:
Manik Surtani (manik AT jboss DOT org)

Constructor Summary
LockContainer()
           
 
Method Summary
protected  int calculateNumberOfSegments(int concurrencyLevel)
           
abstract  Lock getLock(E object)
           
abstract  int getNumLocksHeld()
           
 int hashToIndex(E object)
           
protected abstract  void initLocks(int numLocks)
           
abstract  boolean isLocked(E object)
           
abstract  boolean ownsLock(E object, Object owner)
          Tests if a give owner owns a lock on a specified object.
abstract  void reset()
          Clears all locks held and re-initialises stripes.
abstract  int size()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LockContainer

public LockContainer()
Method Detail

calculateNumberOfSegments

protected int calculateNumberOfSegments(int concurrencyLevel)

hashToIndex

public final int hashToIndex(E object)

initLocks

protected abstract void initLocks(int numLocks)

ownsLock

public abstract boolean ownsLock(E object,
                                 Object owner)
Tests if a give owner owns a lock on a specified object.

Parameters:
object - object to check
owner - owner to test
Returns:
true if owner owns lock, false otherwise

isLocked

public abstract boolean isLocked(E object)
Parameters:
object - object
Returns:
true if an object is locked, false otherwise

getLock

public abstract Lock getLock(E object)
Parameters:
object - object
Returns:
the lock for a specific object

getNumLocksHeld

public abstract int getNumLocksHeld()
Returns:
number of locks held

reset

public abstract void reset()
Clears all locks held and re-initialises stripes.


size

public abstract int size()


Copyright © 2009 JBoss, a division of Red Hat. All Rights Reserved.