org.apache.naming.resources
Class ResourceCache

java.lang.Object
  extended byorg.apache.naming.resources.ResourceCache

public class ResourceCache
extends java.lang.Object

Implements a special purpose cache.

Version:
$Revision: 466608 $
Author:
Remy Maucherat

Field Summary
protected  long accessCount
          Number of accesses to the cache.
protected  CacheEntry[] cache
          Cache.
protected  int cacheMaxSize
          Max size of resources which will have their content cached.
protected  int cacheSize
          Current cache size in KB.
protected  long desiredEntryAccessRatio
          Entry hit ratio at which an entry will never be removed from the cache.
protected  long hitsCount
          Number of cache hits.
protected  int maxAllocateIterations
          Max amount of removals during a make space.
protected  java.util.HashMap notFoundCache
          Not found cache.
protected  java.util.Random random
          Random generator used to determine elements to free.
protected  int spareNotFoundEntries
          Spare amount of not found entries.
 
Constructor Summary
ResourceCache()
           
 
Method Summary
 boolean allocate(int space)
           
 long getAccessCount()
          Return the access count.
 int getCacheMaxSize()
          Return the maximum size of the cache in KB.
 int getCacheSize()
          Return the current cache size in KB.
 long getDesiredEntryAccessRatio()
          Return desired entry access ratio.
 long getHitsCount()
          Return the number of cache hits.
 int getMaxAllocateIterations()
          Return the maximum amount of iterations during a space allocation.
 int getSpareNotFoundEntries()
          Return the amount of spare not found entries.
 void load(CacheEntry entry)
           
 CacheEntry lookup(java.lang.String name)
           
 void setCacheMaxSize(int cacheMaxSize)
          Set the maximum size of the cache in KB.
 void setDesiredEntryAccessRatio(long desiredEntryAccessRatio)
          Set the desired entry access ratio.
 void setMaxAllocateIterations(int maxAllocateIterations)
          Set the maximum amount of iterations during a space allocation.
 void setSpareNotFoundEntries(int spareNotFoundEntries)
          Set the amount of spare not found entries.
 boolean unload(java.lang.String name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

random

protected java.util.Random random
Random generator used to determine elements to free.


cache

protected CacheEntry[] cache
Cache. Path -> Cache entry.


notFoundCache

protected java.util.HashMap notFoundCache
Not found cache.


cacheMaxSize

protected int cacheMaxSize
Max size of resources which will have their content cached.


maxAllocateIterations

protected int maxAllocateIterations
Max amount of removals during a make space.


desiredEntryAccessRatio

protected long desiredEntryAccessRatio
Entry hit ratio at which an entry will never be removed from the cache. Compared with entry.access / hitsCount


spareNotFoundEntries

protected int spareNotFoundEntries
Spare amount of not found entries.


cacheSize

protected int cacheSize
Current cache size in KB.


accessCount

protected long accessCount
Number of accesses to the cache.


hitsCount

protected long hitsCount
Number of cache hits.

Constructor Detail

ResourceCache

public ResourceCache()
Method Detail

getAccessCount

public long getAccessCount()
Return the access count. Note: Update is not synced, so the number may not be completely accurate.


getCacheMaxSize

public int getCacheMaxSize()
Return the maximum size of the cache in KB.


setCacheMaxSize

public void setCacheMaxSize(int cacheMaxSize)
Set the maximum size of the cache in KB.


getCacheSize

public int getCacheSize()
Return the current cache size in KB.


getDesiredEntryAccessRatio

public long getDesiredEntryAccessRatio()
Return desired entry access ratio.


setDesiredEntryAccessRatio

public void setDesiredEntryAccessRatio(long desiredEntryAccessRatio)
Set the desired entry access ratio.


getHitsCount

public long getHitsCount()
Return the number of cache hits. Note: Update is not synced, so the number may not be completely accurate.


getMaxAllocateIterations

public int getMaxAllocateIterations()
Return the maximum amount of iterations during a space allocation.


setMaxAllocateIterations

public void setMaxAllocateIterations(int maxAllocateIterations)
Set the maximum amount of iterations during a space allocation.


getSpareNotFoundEntries

public int getSpareNotFoundEntries()
Return the amount of spare not found entries.


setSpareNotFoundEntries

public void setSpareNotFoundEntries(int spareNotFoundEntries)
Set the amount of spare not found entries.


allocate

public boolean allocate(int space)

lookup

public CacheEntry lookup(java.lang.String name)

load

public void load(CacheEntry entry)

unload

public boolean unload(java.lang.String name)


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.