org.smallmind.quorum.cache
Class LockingCacheEnforcer<K,V>

java.lang.Object
  extended by org.smallmind.quorum.cache.LockingCacheEnforcer<K,V>
All Implemented Interfaces:
LockingCache<K,V>
Direct Known Subclasses:
AbstractCache

public abstract class LockingCacheEnforcer<K,V>
extends Object
implements LockingCache<K,V>


Constructor Summary
LockingCacheEnforcer(ReentrantLock[] stripeLocks, long lockTimeout)
           
 
Method Summary
<R> R
executeLockedCallback(KeyLock keyLock, LockedCallback<K,R> callback)
           
protected  void gateKey(KeyLock keyLock, K key)
           
 long getLockTimeout()
           
protected  ReentrantLock[] getStripeLockArray()
           
 KeyLock lock(KeyLock keyLock, K key)
           
protected  ReentrantLock lockStripe(K key)
           
 void unlock(KeyLock keyLock, K key)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.smallmind.quorum.cache.LockingCache
clear, close, exists, get, getCacheName, isClosed, put, putIfAbsent, remove, size
 

Constructor Detail

LockingCacheEnforcer

public LockingCacheEnforcer(ReentrantLock[] stripeLocks,
                            long lockTimeout)
                     throws CacheException
Throws:
CacheException
Method Detail

getLockTimeout

public long getLockTimeout()
Specified by:
getLockTimeout in interface LockingCache<K,V>

executeLockedCallback

public <R> R executeLockedCallback(KeyLock keyLock,
                                   LockedCallback<K,R> callback)
Specified by:
executeLockedCallback in interface LockingCache<K,V>

lock

public KeyLock lock(KeyLock keyLock,
                    K key)
Specified by:
lock in interface LockingCache<K,V>

unlock

public void unlock(KeyLock keyLock,
                   K key)
Specified by:
unlock in interface LockingCache<K,V>

getStripeLockArray

protected ReentrantLock[] getStripeLockArray()

lockStripe

protected ReentrantLock lockStripe(K key)

gateKey

protected void gateKey(KeyLock keyLock,
                       K key)


Copyright © 2012. All Rights Reserved.