Interface StorageCacheIF

  • All Known Implementing Classes:
    AbstractLocalCache, ROLocalCache, RWLocalCache, SharedCache, StatisticsCache

    public interface StorageCacheIF
    INTERNAL: Interface used by the transaction to get hold of objects and object field values. Implementations of this interface are free do quite a lot of optimizations when it comes to memory handling and data repository access.
    • Method Summary

      All Methods Instance Methods Abstract 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 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.
      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.
    • Method Detail

      • exists

        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. Whether the data repository is actually asked depends on the policy of the storage cache.
      • isObjectLoaded

        boolean isObjectLoaded​(IdentityIF identity)
        INTERNAL: Can be called to check if the identity has been registered with the cache. The data repository will not be asked.
      • isFieldLoaded

        boolean isFieldLoaded​(IdentityIF identity,
                              int field)
        INTERNAL: Can be called to check if the specfied field has been registered with the cache. The data repository will not be asked.
      • registerEviction

        void registerEviction()
        INTERNAL: Tells the cache that eviction is starting.
      • releaseEviction

        void releaseEviction()
        INTERNAL: Deregister eviction.
      • evictIdentity

        void evictIdentity​(IdentityIF identity,
                           boolean notifyCluster)
        INTERNAL: Evict the identity from the cache.
      • evictFields

        void evictFields​(IdentityIF identity,
                         boolean notifyCluster)
        INTERNAL: Evict all the identity's field values from the cache.
      • evictField

        void evictField​(IdentityIF identity,
                        int field,
                        boolean notifyCluster)
        INTERNAL: Evict the identity's field value from the cache.
      • clear

        void clear​(boolean notifyCluster)
        INTERNAL: Clears the cache.
      • getRegistrar

        AccessRegistrarIF getRegistrar()
        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.
      • close

        void close()
        INTERNAL: Releases all resources used by the storage cache.