Class SnapStream


  • public class SnapStream
    extends Object
    Represent the Stream used in serialize and deserialize the Snapshot.
    • Constructor Detail

      • SnapStream

        public SnapStream()
    • Method Detail

      • getInputStream

        public static CheckedInputStream getInputStream​(File file)
                                                 throws IOException
        Return the CheckedInputStream based on the extension of the fileName.
        Parameters:
        file - the file the InputStream read from
        Returns:
        the specific InputStream
        Throws:
        IOException
      • getOutputStream

        public static CheckedOutputStream getOutputStream​(File file,
                                                          boolean fsync)
                                                   throws IOException
        Return the OutputStream based on predefined stream mode.
        Parameters:
        file - the file the OutputStream writes to
        fsync - sync the file immediately after write
        Returns:
        the specific OutputStream
        Throws:
        IOException
      • sealStream

        public static void sealStream​(CheckedOutputStream os,
                                      OutputArchive oa)
                               throws IOException
        Write specific seal to the OutputArchive and close the OutputStream. Currently, only CheckedOutputStream will write it's checkSum to the end of the stream.
        Throws:
        IOException
      • isValidSnapshot

        public static boolean isValidSnapshot​(File file)
                                       throws IOException
        Verifies that the file is a valid snapshot. Snapshot may be invalid if it's incomplete as in a situation when the server dies while in the process of storing a snapshot. Any files that are improperly formated or corrupted are invalid. Any file that is not a snapshot is also an invalid snapshot.
        Parameters:
        file - file to verify
        Returns:
        true if the snapshot is valid
        Throws:
        IOException
      • getStreamMode

        public static SnapStream.StreamMode getStreamMode​(String fileName)
        Detect the stream mode from file name extension
        Parameters:
        fileName -
        Returns:
        the stream mode detected