Interface IBmPersistentObjectKeyStore<K>


  • public interface IBmPersistentObjectKeyStore<K>
    Object to byte array persistent key-value store.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void close()
      Closes the store.
      long getStoreSize()
      Gets the size of the store, in bytes.
      Iterable<K> keys()
      Gets all the keys in the store as Iterable.
      <T> T read​(K key, IBmPersistentStoreReaderCallback<T> callback)
      Reads data associated with the specified key.
      boolean remove​(K key)
      Removes data assoicated with the specified key.
      boolean requiresCompacting()
      Checks if the store requires compacting.
      void start()
      Starts the store.
      void write​(K key, byte[] data)
      Writes the specified data to store and associates with the specified key.
      void write​(K key, byte[] data, int offset, int length)
      Writes the specified piece of binary data and associates it with the specified ID.
    • Method Detail

      • close

        void close()
            throws IOException
        Closes the store. Once store closed, it cannot be started again.
        Throws:
        IOException - if any I/O error occurs.
      • read

        <T> T read​(K key,
                   IBmPersistentStoreReaderCallback<T> callback)
            throws IOException
        Reads data associated with the specified key. If the data exist the callback is invoked.
        Parameters:
        key - The key. May not be null.
        callback - The callback. May not be null.
        Returns:
        the result returned by callback or null if there are no data associated with the specified key.
        Throws:
        IOException - if any I/O error occurs.
      • write

        void write​(K key,
                   byte[] data)
            throws IOException
        Writes the specified data to store and associates with the specified key.
        Parameters:
        key - The key. May not be null.
        data - The byte array containing the data. May not be null.
        Throws:
        IOException - if any I/O error occurs.
      • write

        void write​(K key,
                   byte[] data,
                   int offset,
                   int length)
            throws IOException
        Writes the specified piece of binary data and associates it with the specified ID.
        Parameters:
        key - The key. May not be null.
        data - The byte array containing the data. May not be null.
        offset - The offset of the data within the array.
        length - The length of the data.
        Throws:
        IOException - if any I/O error occurs.
      • remove

        boolean remove​(K key)
                throws IOException
        Removes data assoicated with the specified key.
        Parameters:
        key - The key. May not be null.
        Returns:
        true if there were data associated with the specified key, false otherwise.
        Throws:
        IOException - if any I/O error occurs.
      • getStoreSize

        long getStoreSize()
                   throws IOException
        Gets the size of the store, in bytes.
        Returns:
        The size of the store, in bytes. Cannot be negative.
        Throws:
        IOException - if any I/O error occurs.
      • requiresCompacting

        boolean requiresCompacting()
                            throws IOException
        Checks if the store requires compacting.
        Returns:
        true if the store requires compacting, false otherwise.
        Throws:
        IOException - if any I/O error occurs.