com.sun.ejb.containers.util.cache
Class FIFOEJBObjectCache

java.lang.Object
  extended by com.sun.ejb.containers.util.cache.BaseCache
      extended by com.sun.ejb.containers.util.cache.LruCache
          extended by com.sun.ejb.containers.util.cache.FIFOEJBObjectCache
All Implemented Interfaces:
Cache, EJBObjectCache

public class FIFOEJBObjectCache
extends LruCache
implements EJBObjectCache

A FIFO EJB(Local)Object cache that maintains reference count

Author:
Mahesh Kannan

Nested Class Summary
protected static class FIFOEJBObjectCache.EJBObjectCacheItem
           
 
Nested classes/interfaces inherited from class com.sun.ejb.containers.util.cache.LruCache
LruCache.LruCacheItem
 
Nested classes/interfaces inherited from class com.sun.ejb.containers.util.cache.BaseCache
BaseCache.CacheItem
 
Field Summary
protected static boolean _printRefCount
           
protected  EJBObjectCacheListener listener
           
protected  int maxCacheSize
           
protected  java.lang.String name
           
protected  java.lang.Object refCountLock
           
protected  int totalRefCount
           
 
Fields inherited from class com.sun.ejb.containers.util.cache.LruCache
cacheName, head, listSize, NO_TIMEOUT, tail, timeout, trimCount
 
Fields inherited from class com.sun.ejb.containers.util.cache.BaseCache
_rb, addCount, addCountLk, bucketLocks, buckets, entryCount, entryCountLk, hitCount, hitCountLk, listeners, maxBuckets, missCount, missCountLk, overflowCount, overflowCountLk, refreshCount, refreshCountLk, refreshFlags, removalCount, removalCountLk, threshold
 
Constructor Summary
FIFOEJBObjectCache(java.lang.String name)
          default constructor
FIFOEJBObjectCache(java.lang.String name, long timeout)
          constructor with specified timeout
 
Method Summary
protected  BaseCache.CacheItem createItem(int hashCode, java.lang.Object key, java.lang.Object value, int size)
          create new item
protected  void decrementReferenceCount()
           
protected  void decrementReferenceCount(int count)
           
 java.lang.Object get(java.lang.Object key)
          get the item stored at the key.
 java.lang.Object get(java.lang.Object key, boolean incrementRefCount)
           
 java.util.Map getStats()
          get the stats snapshot
protected  void incrementReferenceCount()
           
 void init(int maxEntries, int numberOfVictimsToSelect, long timeout, float loadFactor, java.util.Properties props)
           
protected  java.lang.Object internalGet(int hashCode, java.lang.Object key, boolean incrementRefCount)
           
protected  java.lang.Object internalPut(int hashCode, java.lang.Object key, java.lang.Object value, int size, boolean incrementRefCount)
           
protected  java.lang.Object internalRemove(java.lang.Object key, boolean decrementRefCount)
           
protected  boolean isThresholdReached()
          has cache reached its threshold
protected  void itemAccessed(BaseCache.CacheItem item)
          this item is accessed
protected  void itemRemoved(BaseCache.CacheItem item)
          item value has been removed from the cache
static void main(java.lang.String[] args)
           
 void print()
           
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          cache the given value at the specified key and return previous value
 java.lang.Object put(java.lang.Object key, java.lang.Object value, boolean incrementRefCount)
           
 java.lang.Object remove(java.lang.Object key)
          remove the item stored at the key.
 java.lang.Object remove(java.lang.Object key, boolean decrementRefCount)
           
 void setEJBObjectCacheListener(EJBObjectCacheListener listener)
           
 void trimExpiredEntries(int maxCount)
          trim the expired entries from the cache.
 
Methods inherited from class com.sun.ejb.containers.util.cache.LruCache
getStatByName, itemAdded, itemRefreshed, setCacheName, trimLru
 
Methods inherited from class com.sun.ejb.containers.util.cache.BaseCache
_put, _remove, _removeItem, add, add, addCacheListener, clear, clearStats, contains, decrementEntryCount, destroy, elements, eq, get, getAll, getEntryCount, getIndex, getIndex, handleOverflow, hash, incrementAddCount, incrementEntryCount, incrementHitCount, incrementMissCount, incrementOverflowCount, incrementRefreshCount, incrementRemovalCount, init, init, isEmpty, keys, loadValue, notifyRefresh, put, remove, remove, removeAll, trimItem, values, waitRefresh
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.sun.appserv.util.cache.Cache
add, add, addCacheListener, clear, clearStats, contains, destroy, elements, getAll, getEntryCount, getIndex, getStatByName, init, init, isEmpty, keys, notifyRefresh, put, remove, removeAll, values, waitRefresh
 

Field Detail

maxCacheSize

protected int maxCacheSize

name

protected java.lang.String name

listener

protected EJBObjectCacheListener listener

refCountLock

protected java.lang.Object refCountLock

totalRefCount

protected int totalRefCount

_printRefCount

protected static boolean _printRefCount
Constructor Detail

FIFOEJBObjectCache

public FIFOEJBObjectCache(java.lang.String name)
default constructor


FIFOEJBObjectCache

public FIFOEJBObjectCache(java.lang.String name,
                          long timeout)
constructor with specified timeout

Method Detail

init

public void init(int maxEntries,
                 int numberOfVictimsToSelect,
                 long timeout,
                 float loadFactor,
                 java.util.Properties props)
Specified by:
init in interface EJBObjectCache

setEJBObjectCacheListener

public void setEJBObjectCacheListener(EJBObjectCacheListener listener)
Specified by:
setEJBObjectCacheListener in interface EJBObjectCache

get

public java.lang.Object get(java.lang.Object key)
Description copied from class: BaseCache
get the item stored at the key.

Specified by:
get in interface Cache
Overrides:
get in class BaseCache
Parameters:
key - lookup key

get

public java.lang.Object get(java.lang.Object key,
                            boolean incrementRefCount)
Specified by:
get in interface EJBObjectCache

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Description copied from class: BaseCache
cache the given value at the specified key and return previous value

Specified by:
put in interface Cache
Overrides:
put in class BaseCache
Parameters:
key - lookup key
value - item value to be stored

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value,
                            boolean incrementRefCount)
Specified by:
put in interface EJBObjectCache

remove

public java.lang.Object remove(java.lang.Object key)
Description copied from class: BaseCache
remove the item stored at the key.

Specified by:
remove in interface Cache
Overrides:
remove in class BaseCache
Parameters:
key - lookup key

remove

public java.lang.Object remove(java.lang.Object key,
                               boolean decrementRefCount)
Specified by:
remove in interface EJBObjectCache

isThresholdReached

protected boolean isThresholdReached()
Description copied from class: BaseCache
has cache reached its threshold

Overrides:
isThresholdReached in class BaseCache
Returns:
true when the cache reached its threshold

itemAccessed

protected void itemAccessed(BaseCache.CacheItem item)
Description copied from class: LruCache
this item is accessed

Overrides:
itemAccessed in class LruCache
Parameters:
item - CacheItem accessed Cache bucket is already synchronized by the caller

itemRemoved

protected void itemRemoved(BaseCache.CacheItem item)
Description copied from class: LruCache
item value has been removed from the cache

Overrides:
itemRemoved in class LruCache
Parameters:
item - CacheItem that was just removed Cache bucket is already synchronized by the caller

internalGet

protected java.lang.Object internalGet(int hashCode,
                                       java.lang.Object key,
                                       boolean incrementRefCount)

internalPut

protected java.lang.Object internalPut(int hashCode,
                                       java.lang.Object key,
                                       java.lang.Object value,
                                       int size,
                                       boolean incrementRefCount)

print

public void print()

internalRemove

protected java.lang.Object internalRemove(java.lang.Object key,
                                          boolean decrementRefCount)

createItem

protected BaseCache.CacheItem createItem(int hashCode,
                                         java.lang.Object key,
                                         java.lang.Object value,
                                         int size)
Description copied from class: LruCache
create new item

Overrides:
createItem in class LruCache
Parameters:
hashCode - for the entry
key - Object key
value - Object value
size - size in bytes of the item subclasses may override to provide their own CacheItem extensions e.g. one that permits persistence.

getStats

public java.util.Map getStats()
Description copied from class: BaseCache
get the stats snapshot

Specified by:
getStats in interface Cache
Overrides:
getStats in class LruCache
Returns:
a Map of stats See also: Constant.java for the keys

trimExpiredEntries

public void trimExpiredEntries(int maxCount)
Description copied from class: LruCache
trim the expired entries from the cache.

Specified by:
trimExpiredEntries in interface Cache
Overrides:
trimExpiredEntries in class LruCache
Parameters:
maxCount - maximum number of invalid entries to trim specify Integer.MAX_VALUE to trim all invalid entries This call is to be scheduled by a thread managed by the container. NOTE: this algorithm assumes that all the entries in the cache have identical timeout (otherwise traversing from tail won't be right).

incrementReferenceCount

protected void incrementReferenceCount()

decrementReferenceCount

protected void decrementReferenceCount()

decrementReferenceCount

protected void decrementReferenceCount(int count)

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Throws:
java.lang.Exception


Copyright © 2012 GlassFish Community. All Rights Reserved.