Class Util


  • public class Util
    extends java.lang.Object
    A collection of utility methods for dealing with file name parsing, low level I/O file operations and marshalling/unmarshalling.
    • Constructor Summary

      Constructors 
      Constructor Description
      Util()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String getFormatConversionPolicy​(java.util.Properties props)
      Extracts the value of the dbFormatConversion attribute.
      static java.io.File getLogDir​(java.util.Properties props)
      Extracts transaction log directory property value from the container.
      static java.io.File getSnapDir​(java.util.Properties props)
      Extracts snapshot directory property value from the container.
      static long getZxidFromName​(java.lang.String name, java.lang.String prefix)
      Extracts zxid from the file name.
      static boolean isLogFileName​(java.lang.String fileName)
      Returns true if fileName is a log file name.
      static boolean isSnapshotFileName​(java.lang.String fileName)
      Returns true if fileName is a snapshot file name.
      static java.net.URI makeFileLoggerURL​(java.io.File dataDir, java.io.File dataLogDir)
      Given two directory files the method returns a well-formed logfile provider URI.
      static java.net.URI makeFileLoggerURL​(java.io.File dataDir, java.io.File dataLogDir, java.lang.String convPolicy)  
      static java.lang.String makeLogName​(long zxid)
      Creates a valid transaction log file name.
      static java.lang.String makeSnapshotName​(long zxid)
      Creates a snapshot file name.
      static java.lang.String makeURIString​(java.lang.String dataDir, java.lang.String dataLogDir, java.lang.String convPolicy)  
      static byte[] marshallTxnEntry​(TxnHeader hdr, Record txn)
      Serializes transaction header and transaction data into a byte buffer.
      static byte[] marshallTxnEntry​(TxnHeader hdr, Record txn, TxnDigest digest)  
      static byte[] readTxnBytes​(InputArchive ia)
      Reads a transaction entry from the input archive.
      static java.util.List<java.io.File> sortDataDir​(java.io.File[] files, java.lang.String prefix, boolean ascending)
      Sort the list of files.
      static void writeTxnBytes​(OutputArchive oa, byte[] bytes)
      Write the serialized transaction record to the output archive.
      • Methods inherited from class java.lang.Object

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

      • Util

        public Util()
    • Method Detail

      • makeURIString

        public static java.lang.String makeURIString​(java.lang.String dataDir,
                                                     java.lang.String dataLogDir,
                                                     java.lang.String convPolicy)
      • makeFileLoggerURL

        public static java.net.URI makeFileLoggerURL​(java.io.File dataDir,
                                                     java.io.File dataLogDir)
        Given two directory files the method returns a well-formed logfile provider URI. This method is for backward compatibility with the existing code that only supports logfile persistence and expects these two parameters passed either on the command-line or in the configuration file.
        Parameters:
        dataDir - snapshot directory
        dataLogDir - transaction log directory
        Returns:
        logfile provider URI
      • makeFileLoggerURL

        public static java.net.URI makeFileLoggerURL​(java.io.File dataDir,
                                                     java.io.File dataLogDir,
                                                     java.lang.String convPolicy)
      • makeLogName

        public static java.lang.String makeLogName​(long zxid)
        Creates a valid transaction log file name.
        Parameters:
        zxid - used as a file name suffix (extension)
        Returns:
        file name
      • makeSnapshotName

        public static java.lang.String makeSnapshotName​(long zxid)
        Creates a snapshot file name.
        Parameters:
        zxid - used as a suffix
        Returns:
        file name
      • getSnapDir

        public static java.io.File getSnapDir​(java.util.Properties props)
        Extracts snapshot directory property value from the container.
        Parameters:
        props - properties container
        Returns:
        file representing the snapshot directory
      • getLogDir

        public static java.io.File getLogDir​(java.util.Properties props)
        Extracts transaction log directory property value from the container.
        Parameters:
        props - properties container
        Returns:
        file representing the txn log directory
      • getFormatConversionPolicy

        public static java.lang.String getFormatConversionPolicy​(java.util.Properties props)
        Extracts the value of the dbFormatConversion attribute.
        Parameters:
        props - properties container
        Returns:
        value of the dbFormatConversion attribute
      • getZxidFromName

        public static long getZxidFromName​(java.lang.String name,
                                           java.lang.String prefix)
        Extracts zxid from the file name. The file name should have been created using one of the makeLogName(long) or makeSnapshotName(long).
        Parameters:
        name - the file name to parse
        prefix - the file name prefix (snapshot or log)
        Returns:
        zxid
      • readTxnBytes

        public static byte[] readTxnBytes​(InputArchive ia)
                                   throws java.io.IOException
        Reads a transaction entry from the input archive.
        Parameters:
        ia - archive to read from
        Returns:
        null if the entry is corrupted or EOF has been reached; a buffer (possible empty) containing serialized transaction record.
        Throws:
        java.io.IOException
      • marshallTxnEntry

        public static byte[] marshallTxnEntry​(TxnHeader hdr,
                                              Record txn)
                                       throws java.io.IOException
        Serializes transaction header and transaction data into a byte buffer.
        Parameters:
        hdr - transaction header
        txn - transaction data
        Returns:
        serialized transaction record
        Throws:
        java.io.IOException
      • marshallTxnEntry

        public static byte[] marshallTxnEntry​(TxnHeader hdr,
                                              Record txn,
                                              TxnDigest digest)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • writeTxnBytes

        public static void writeTxnBytes​(OutputArchive oa,
                                         byte[] bytes)
                                  throws java.io.IOException
        Write the serialized transaction record to the output archive.
        Parameters:
        oa - output archive
        bytes - serialized transaction record
        Throws:
        java.io.IOException
      • sortDataDir

        public static java.util.List<java.io.File> sortDataDir​(java.io.File[] files,
                                                               java.lang.String prefix,
                                                               boolean ascending)
        Sort the list of files. Recency as determined by the version component of the file name.
        Parameters:
        files - array of files
        prefix - files not matching this prefix are assumed to have a version = -1)
        ascending - true sorted in ascending order, false results in descending order
        Returns:
        sorted input files
      • isLogFileName

        public static boolean isLogFileName​(java.lang.String fileName)
        Returns true if fileName is a log file name.
        Parameters:
        fileName -
      • isSnapshotFileName

        public static boolean isSnapshotFileName​(java.lang.String fileName)
        Returns true if fileName is a snapshot file name.
        Parameters:
        fileName -