org.apache.naming.resources

## Class ResourceCache

- java.lang.Object
- - org.apache.naming.resources.ResourceCache

    public class ResourceCache
    extends Object

Implements a special purpose cache.

Author:
  Remy Maucherat

### Field Summary

Fields
`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 HashMap<String,CacheEntry>` `notFoundCache` Not found cache.
`protected Random` `random` Random generator used to determine elements to free.
`protected int` `spareNotFoundEntries` Spare amount of not found entries.

### Constructor Summary

Constructors
Constructor and Description
`ResourceCache()`

### Method Summary

Methods
`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()` Deprecated. - unused
`long` `getHitsCount()` Return the number of cache hits.
`int` `getMaxAllocateIterations()` Deprecated. - unused
`int` `getSpareNotFoundEntries()` Deprecated. - unused
`void` `load(CacheEntry entry)`
`CacheEntry` `lookup(String name)`
`void` `setCacheMaxSize(int cacheMaxSize)` Set the maximum size of the cache in KB.
`void` `setDesiredEntryAccessRatio(long desiredEntryAccessRatio)` Deprecated. - unused
`void` `setMaxAllocateIterations(int maxAllocateIterations)` Deprecated. - unused
`void` `setSpareNotFoundEntries(int spareNotFoundEntries)` Deprecated. - unused
`boolean` `unload(String name)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### random

    protected Random random

Random generator used to determine elements to free.

#### cache

    protected CacheEntry[] cache

Cache. Path -> Cache entry.

#### notFoundCache

    protected HashMap<String,CacheEntry> 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. TODO: Currently unused. Expose via JMX?

#### getCacheMaxSize

    public int getCacheMaxSize()

Return the maximum size of the cache in KB. TODO: Currently unused. Expose via JMX?

#### 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. TODO: Currently unused. Expose via JMX?

#### getDesiredEntryAccessRatio

    @Deprecated
    public long getDesiredEntryAccessRatio()

Deprecated. - unused
Return desired entry access ratio.

#### setDesiredEntryAccessRatio

    @Deprecated
    public void setDesiredEntryAccessRatio(long desiredEntryAccessRatio)

Deprecated. - unused
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. TODO: Currently unused. Expose via JMX?

#### getMaxAllocateIterations

    @Deprecated
    public int getMaxAllocateIterations()

Deprecated. - unused
Return the maximum amount of iterations during a space allocation.

#### setMaxAllocateIterations

    @Deprecated
    public void setMaxAllocateIterations(int maxAllocateIterations)

Deprecated. - unused
Set the maximum amount of iterations during a space allocation.

#### getSpareNotFoundEntries

    @Deprecated
    public int getSpareNotFoundEntries()

Deprecated. - unused
Return the amount of spare not found entries.

#### setSpareNotFoundEntries

    @Deprecated
    public void setSpareNotFoundEntries(int spareNotFoundEntries)

Deprecated. - unused
Set the amount of spare not found entries.

#### allocate

    public boolean allocate(int space)

#### lookup

    public CacheEntry lookup(String name)

#### load

    public void load(CacheEntry entry)

#### unload

    public boolean unload(String name)