Package net.ontopia.persistence.proxy
Class StatisticsCache
- java.lang.Object
-
- net.ontopia.persistence.proxy.StatisticsCache
-
- All Implemented Interfaces:
StorageCacheIF
public class StatisticsCache extends Object implements StorageCacheIF
INTERNAL: A transactional storage cache implementation. The cache uses the transactions identity map to lookup objects and stores its cache entries directly on the PersistentIFs.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear(boolean notifyCluster)
INTERNAL: Clears the cache.void
close()
INTERNAL: Releases all resources used by the storage cache.void
dump()
void
evictField(IdentityIF identity, int field, boolean notifyCluster)
INTERNAL: Evict the identity's field value from the cache.void
evictFields(IdentityIF identity, boolean notifyCluster)
INTERNAL: Evict all the identity's field values from the cache.void
evictIdentity(IdentityIF identity, boolean notifyCluster)
INTERNAL: Evict the identity from the cache.boolean
exists(StorageAccessIF access, IdentityIF identity)
INTERNAL: Can be called to verify whether the specified identity exists in the cache or in the data repository.AccessRegistrarIF
getRegistrar()
INTERNAL: Returns the access registrar instance that is used by the storage cache.Object
getValue(StorageAccessIF access, IdentityIF identity, int field)
INTERNAL: A call forwarded by the transaction (TransactionIF) from persistent objects (PersistentIF) when the field value needs to be retrieved from storage.boolean
isFieldLoaded(IdentityIF identity, int field)
INTERNAL: Can be called to check if the specfied field has been registered with the cache.boolean
isObjectLoaded(IdentityIF identity)
INTERNAL: Can be called to check if the identity has been registered with the cache.protected int
percent(int c, int total)
int
prefetch(StorageAccessIF access, Class<?> type, int field, int nextField, boolean traverse, Collection<IdentityIF> identities)
void
registerEviction()
INTERNAL: Tells the cache that eviction is starting.void
releaseEviction()
INTERNAL: Deregister eviction.String
toString()
-
-
-
Field Detail
-
total_o
protected int total_o
-
total_f
protected int total_f
-
hits_o
protected int hits_o
-
hits_f
protected int hits_f
-
misses_o
protected int misses_o
-
misses_f
protected int misses_f
-
dump_interval
protected int dump_interval
-
name
protected String name
-
pcache
protected StorageCacheIF pcache
-
-
Method Detail
-
getRegistrar
public AccessRegistrarIF getRegistrar()
Description copied from interface:StorageCacheIF
INTERNAL: Returns the access registrar instance that is used by the storage cache. If it does not need an access registrar, or it does not have one, null is returned.- Specified by:
getRegistrar
in interfaceStorageCacheIF
-
close
public void close()
Description copied from interface:StorageCacheIF
INTERNAL: Releases all resources used by the storage cache.- Specified by:
close
in interfaceStorageCacheIF
-
exists
public boolean exists(StorageAccessIF access, IdentityIF identity)
Description copied from interface:StorageCacheIF
INTERNAL: Can be called to verify whether the specified identity exists in the cache or in the data repository. Whether the data repository is actually asked depends on the policy of the storage cache.- Specified by:
exists
in interfaceStorageCacheIF
-
getValue
public Object getValue(StorageAccessIF access, IdentityIF identity, int field)
Description copied from interface:StorageCacheIF
INTERNAL: A call forwarded by the transaction (TransactionIF) from persistent objects (PersistentIF) when the field value needs to be retrieved from storage. The field value will be returned.- Specified by:
getValue
in interfaceStorageCacheIF
-
isObjectLoaded
public boolean isObjectLoaded(IdentityIF identity)
Description copied from interface:StorageCacheIF
INTERNAL: Can be called to check if the identity has been registered with the cache. The data repository will not be asked.- Specified by:
isObjectLoaded
in interfaceStorageCacheIF
-
isFieldLoaded
public boolean isFieldLoaded(IdentityIF identity, int field)
Description copied from interface:StorageCacheIF
INTERNAL: Can be called to check if the specfied field has been registered with the cache. The data repository will not be asked.- Specified by:
isFieldLoaded
in interfaceStorageCacheIF
-
registerEviction
public void registerEviction()
Description copied from interface:StorageCacheIF
INTERNAL: Tells the cache that eviction is starting.- Specified by:
registerEviction
in interfaceStorageCacheIF
-
releaseEviction
public void releaseEviction()
Description copied from interface:StorageCacheIF
INTERNAL: Deregister eviction.- Specified by:
releaseEviction
in interfaceStorageCacheIF
-
evictIdentity
public void evictIdentity(IdentityIF identity, boolean notifyCluster)
Description copied from interface:StorageCacheIF
INTERNAL: Evict the identity from the cache.- Specified by:
evictIdentity
in interfaceStorageCacheIF
-
evictFields
public void evictFields(IdentityIF identity, boolean notifyCluster)
Description copied from interface:StorageCacheIF
INTERNAL: Evict all the identity's field values from the cache.- Specified by:
evictFields
in interfaceStorageCacheIF
-
evictField
public void evictField(IdentityIF identity, int field, boolean notifyCluster)
Description copied from interface:StorageCacheIF
INTERNAL: Evict the identity's field value from the cache.- Specified by:
evictField
in interfaceStorageCacheIF
-
clear
public void clear(boolean notifyCluster)
Description copied from interface:StorageCacheIF
INTERNAL: Clears the cache.- Specified by:
clear
in interfaceStorageCacheIF
-
prefetch
public int prefetch(StorageAccessIF access, Class<?> type, int field, int nextField, boolean traverse, Collection<IdentityIF> identities)
- Specified by:
prefetch
in interfaceStorageCacheIF
-
percent
protected int percent(int c, int total)
-
dump
public void dump()
-
-