Class IntegerStorageEngine

  • All Implemented Interfaces:
    HalfStorageEngine<java.lang.Integer>
    Direct Known Subclasses:
    PersistentIntegerStorageEngine

    public class IntegerStorageEngine
    extends java.lang.Object
    implements HalfStorageEngine<java.lang.Integer>
    A symmetric Integer storage engine.

    This engine stores the keys and values directly as their primitive representations, and therefore uses no additional data structure.

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void bind​(StorageEngine.Owner owner, long mask)  
      void clear()
      Called to indicate that all keys and values are now free.
      static Factory<IntegerStorageEngine> createFactory()  
      void destroy()  
      boolean equals​(java.lang.Object key, int address)
      Called to determine the equality of the given Java object value against the given encoded form.
      void free​(int address)
      Called to indicate that the associated encoded value is no longer needed.
      long getAllocatedMemory()
      Returns a measure of the amount of memory allocated for this storage engine.
      long getDataSize()
      Returns a measure of the total size of the keys and values stored in this storage engine.
      long getOccupiedMemory()
      Returns a measure of the amount of memory consumed by this storage engine.
      long getVitalMemory()
      Returns a measure of the amount of vital memory allocated for this storage engine.
      static IntegerStorageEngine instance()  
      void invalidateCache()
      Invalidate any local key/value caches.
      java.lang.Integer read​(int address)
      Converts the supplied encoded value into its correct object form.
      boolean shrink()  
      java.lang.Integer write​(java.lang.Integer value, int hash)
      Converts the supplied value object into it's encoded form.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • IntegerStorageEngine

        public IntegerStorageEngine()
    • Method Detail

      • read

        public java.lang.Integer read​(int address)
        Description copied from interface: HalfStorageEngine
        Converts the supplied encoded value into its correct object form.
        Specified by:
        read in interface HalfStorageEngine<java.lang.Integer>
        Parameters:
        address - encoded value
        Returns:
        a decoded value object
      • write

        public java.lang.Integer write​(java.lang.Integer value,
                                       int hash)
        Description copied from interface: HalfStorageEngine
        Converts the supplied value object into it's encoded form.
        Specified by:
        write in interface HalfStorageEngine<java.lang.Integer>
        Parameters:
        value - a value object
        hash - the keys hash
        Returns:
        encoded value
      • free

        public void free​(int address)
        Description copied from interface: HalfStorageEngine
        Called to indicate that the associated encoded value is no longer needed.

        This call can be used to free any associated resources tied to the lifecycle of the supplied encoded value.

        Specified by:
        free in interface HalfStorageEngine<java.lang.Integer>
        Parameters:
        address - encoded value
      • equals

        public boolean equals​(java.lang.Object key,
                              int address)
        Description copied from interface: HalfStorageEngine
        Called to determine the equality of the given Java object value against the given encoded form.

        Simple implementations will probably perform a decode on the given encoded form in order to do a regular Object.equals(Object) comparison. This method is provided to allow implementations to optimize this comparison if possible.

        Specified by:
        equals in interface HalfStorageEngine<java.lang.Integer>
        Parameters:
        key - a value object
        address - encoded value
        Returns:
        true if the value and the encoding are equal
      • clear

        public void clear()
        Description copied from interface: HalfStorageEngine
        Called to indicate that all keys and values are now free.
        Specified by:
        clear in interface HalfStorageEngine<java.lang.Integer>
      • getAllocatedMemory

        public long getAllocatedMemory()
        Description copied from interface: HalfStorageEngine
        Returns a measure of the amount of memory allocated for this storage engine.
        Specified by:
        getAllocatedMemory in interface HalfStorageEngine<java.lang.Integer>
        Returns:
        memory allocated for this engine in bytes
      • getOccupiedMemory

        public long getOccupiedMemory()
        Description copied from interface: HalfStorageEngine
        Returns a measure of the amount of memory consumed by this storage engine.
        Specified by:
        getOccupiedMemory in interface HalfStorageEngine<java.lang.Integer>
        Returns:
        memory occupied by this engine in bytes
      • getVitalMemory

        public long getVitalMemory()
        Description copied from interface: HalfStorageEngine
        Returns a measure of the amount of vital memory allocated for this storage engine.
        Specified by:
        getVitalMemory in interface HalfStorageEngine<java.lang.Integer>
        Returns:
        vital memory allocated for this engine in bytes
      • getDataSize

        public long getDataSize()
        Description copied from interface: HalfStorageEngine
        Returns a measure of the total size of the keys and values stored in this storage engine.
        Specified by:
        getDataSize in interface HalfStorageEngine<java.lang.Integer>
        Returns:
        size of the stored keys and values in bytes
      • invalidateCache

        public void invalidateCache()
        Description copied from interface: HalfStorageEngine
        Invalidate any local key/value caches.

        This is called to indicate the termination of a map write "phase". Caching is permitted within a write operation (i.e. to cache around allocation failures during eviction processes).

        Specified by:
        invalidateCache in interface HalfStorageEngine<java.lang.Integer>