Class FileSnap

  • All Implemented Interfaces:
    SnapShot

    public class FileSnap
    extends java.lang.Object
    implements SnapShot
    This class implements the snapshot interface. it is responsible for storing, serializing and deserializing the right snapshot. and provides access to the snapshots.
    • Constructor Summary

      Constructors 
      Constructor Description
      FileSnap​(java.io.File snapDir)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      synchronized close just so that if serialize is in place the close operation will block and will wait till serialize is done and will set the close flag
      long deserialize​(DataTree dt, java.util.Map<java.lang.Long,​java.lang.Integer> sessions)
      deserialize a data tree from the most recent snapshot
      void deserialize​(DataTree dt, java.util.Map<java.lang.Long,​java.lang.Integer> sessions, org.apache.jute.InputArchive ia)
      deserialize the datatree from an inputarchive
      java.io.File findMostRecentSnapshot()
      find the most recent snapshot in the database.
      java.util.List<java.io.File> findNRecentSnapshots​(int n)
      find the last n snapshots.
      void serialize​(DataTree dt, java.util.Map<java.lang.Long,​java.lang.Integer> sessions, java.io.File snapShot)
      serialize the datatree and session into the file snapshot
      protected void serialize​(DataTree dt, java.util.Map<java.lang.Long,​java.lang.Integer> sessions, org.apache.jute.OutputArchive oa, FileHeader header)
      serialize the datatree and sessions
      • Methods inherited from class java.lang.Object

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

      • SNAP_MAGIC

        public static final int SNAP_MAGIC
      • SNAPSHOT_FILE_PREFIX

        public static final java.lang.String SNAPSHOT_FILE_PREFIX
        See Also:
        Constant Field Values
    • Constructor Detail

      • FileSnap

        public FileSnap​(java.io.File snapDir)
    • Method Detail

      • deserialize

        public long deserialize​(DataTree dt,
                                java.util.Map<java.lang.Long,​java.lang.Integer> sessions)
                         throws java.io.IOException
        deserialize a data tree from the most recent snapshot
        Specified by:
        deserialize in interface SnapShot
        Parameters:
        dt - the datatree to be deserialized into
        sessions - the sessions to be deserialized into
        Returns:
        the zxid of the snapshot
        Throws:
        java.io.IOException
      • deserialize

        public void deserialize​(DataTree dt,
                                java.util.Map<java.lang.Long,​java.lang.Integer> sessions,
                                org.apache.jute.InputArchive ia)
                         throws java.io.IOException
        deserialize the datatree from an inputarchive
        Parameters:
        dt - the datatree to be serialized into
        sessions - the sessions to be filled up
        ia - the input archive to restore from
        Throws:
        java.io.IOException
      • findMostRecentSnapshot

        public java.io.File findMostRecentSnapshot()
                                            throws java.io.IOException
        find the most recent snapshot in the database.
        Specified by:
        findMostRecentSnapshot in interface SnapShot
        Returns:
        the file containing the most recent snapshot
        Throws:
        java.io.IOException
      • findNRecentSnapshots

        public java.util.List<java.io.File> findNRecentSnapshots​(int n)
                                                          throws java.io.IOException
        find the last n snapshots. this does not have any checks if the snapshot might be valid or not
        Parameters:
        the - number of most recent snapshots
        Returns:
        the last n snapshots
        Throws:
        java.io.IOException
      • serialize

        protected void serialize​(DataTree dt,
                                 java.util.Map<java.lang.Long,​java.lang.Integer> sessions,
                                 org.apache.jute.OutputArchive oa,
                                 FileHeader header)
                          throws java.io.IOException
        serialize the datatree and sessions
        Parameters:
        dt - the datatree to be serialized
        sessions - the sessions to be serialized
        oa - the output archive to serialize into
        header - the header of this snapshot
        Throws:
        java.io.IOException
      • serialize

        public void serialize​(DataTree dt,
                              java.util.Map<java.lang.Long,​java.lang.Integer> sessions,
                              java.io.File snapShot)
                       throws java.io.IOException
        serialize the datatree and session into the file snapshot
        Specified by:
        serialize in interface SnapShot
        Parameters:
        dt - the datatree to be serialized
        sessions - the sessions to be serialized
        snapShot - the file to store snapshot into
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        synchronized close just so that if serialize is in place the close operation will block and will wait till serialize is done and will set the close flag
        Specified by:
        close in interface SnapShot
        Throws:
        java.io.IOException