Interface HandleStorage

  • All Known Subinterfaces:
    HandleStorage2

    public interface HandleStorage
    HandleStorage is an interface to an object that is capable of storing handles and their values.
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      void checkpointDatabase()
      Checkpoint (ie backup, and reset transaction logs) the database.
      void createHandle​(byte[] handle, HandleValue[] values)
      Creates the specified handle in the "database" with the specified initial values
      default void createOrUpdateRecord​(byte[] handle, HandleValue[] values)
      Creates or updates the handle to have the exact given handle values.
      void deleteAllRecords()
      Remove all of the records from the database.
      boolean deleteHandle​(byte[] handle)
      Delete the specified handle in the database.
      default boolean exists​(byte[] handle)
      Returns true if the given handle exists in the database.
      java.util.Enumeration<byte[]> getHandlesForNA​(byte[] naHdl)
      Scan the database for handles with the given prefix and return an Enumeration of byte arrays with each byte array being a handle.
      byte[][] getRawHandleValues​(byte[] handle, int[] indexList, byte[][] typeList)
      Return the pre-packaged values of the given handle that are either in the indexList or the typeList.
      boolean haveNA​(byte[] authHandle)
      Returns true if this server is responsible for the given prefix.
      void init​(net.cnri.util.StreamTable configTable)
      Initializes the handle storage object with the given configuration table.
      void scanHandles​(ScanCallback callback)
      Scan the database, calling a method in the specified callback for every handle in the database.
      default void scanHandlesFrom​(byte[] startingPoint, boolean inclusive, ScanCallback callback)
      Scan the database, calling a method in the specified callback for every handle in the database.
      void scanNAs​(ScanCallback callback)
      Scan the homed prefix database, calling a method in the specified callback for every prefix in the database.
      default void scanNAsFrom​(byte[] startingPoint, boolean inclusive, ScanCallback callback)
      Scan the homed prefix database, calling a method in the specified callback for every prefix in the database.
      void setHaveNA​(byte[] authHandle, boolean flag)
      Sets a flag indicating whether or not this server is responsible for the given prefix.
      void shutdown()
      Save pending data and close any open files.
      default boolean supportsDumpResumption()
      void updateValue​(byte[] handle, HandleValue[] value)
      Replace the handle value that has the same index as the given handle value with the given handle value.
    • Method Detail

      • init

        void init​(net.cnri.util.StreamTable configTable)
           throws java.lang.Exception
        Initializes the handle storage object with the given configuration table.
        Throws:
        java.lang.Exception
      • haveNA

        boolean haveNA​(byte[] authHandle)
                throws HandleException
        Returns true if this server is responsible for the given prefix.
        Throws:
        HandleException
      • setHaveNA

        void setHaveNA​(byte[] authHandle,
                       boolean flag)
                throws HandleException
        Sets a flag indicating whether or not this server is responsible for the given prefix.
        Throws:
        HandleException
      • deleteHandle

        boolean deleteHandle​(byte[] handle)
                      throws HandleException
        Delete the specified handle in the database. Returns true if the given handle was in the database.
        Throws:
        HandleException
      • getRawHandleValues

        byte[][] getRawHandleValues​(byte[] handle,
                                    int[] indexList,
                                    byte[][] typeList)
                             throws HandleException
        Return the pre-packaged values of the given handle that are either in the indexList or the typeList. This method should return any values of type ALIAS or REDIRECT, even if they were not requested. Return null to indicate handle not found; byte[0][] to indicate values not found.
        Throws:
        HandleException
      • updateValue

        void updateValue​(byte[] handle,
                         HandleValue[] value)
                  throws HandleException
        Replace the handle value that has the same index as the given handle value with the given handle value.
        Throws:
        HandleException
      • getHandlesForNA

        java.util.Enumeration<byte[]> getHandlesForNA​(byte[] naHdl)
                                               throws HandleException
        Scan the database for handles with the given prefix and return an Enumeration of byte arrays with each byte array being a handle. naHdl is the prefix handle for the prefix that you want to list the handles for.
        Throws:
        HandleException
      • checkpointDatabase

        void checkpointDatabase()
                         throws HandleException
        Checkpoint (ie backup, and reset transaction logs) the database. If not supported, or if the operation failed this should throw an exception. This may just be an asynchronous call that *starts* the checkpoint process, so the method may return if the checkpoint was started, not necessarily if it was successful.
        Throws:
        HandleException
      • shutdown

        void shutdown()
        Save pending data and close any open files.
      • scanHandlesFrom

        default void scanHandlesFrom​(byte[] startingPoint,
                                     boolean inclusive,
                                     ScanCallback callback)
                              throws HandleException
        Scan the database, calling a method in the specified callback for every handle in the database.
        Throws:
        HandleException
      • scanNAsFrom

        default void scanNAsFrom​(byte[] startingPoint,
                                 boolean inclusive,
                                 ScanCallback callback)
                          throws HandleException
        Scan the homed prefix database, calling a method in the specified callback for every prefix in the database.
        Throws:
        HandleException
      • exists

        default boolean exists​(byte[] handle)
                        throws HandleException
        Returns true if the given handle exists in the database.
        Throws:
        HandleException
      • createOrUpdateRecord

        default void createOrUpdateRecord​(byte[] handle,
                                          HandleValue[] values)
                                   throws HandleException
        Creates or updates the handle to have the exact given handle values.
        Throws:
        HandleException