Class PersistPtrHolder

  • All Implemented Interfaces:
    PositionDependentRecord

    public final class PersistPtrHolder
    extends PositionDependentRecordAtom
    General holder for PersistPtrFullBlock and PersistPtrIncrementalBlock records. We need to handle them specially, since we have to go around updating UserEditAtoms if they shuffle about on disk These hold references to where slides "live". If the position of a slide moves, then we have update all of these. If we come up with a new version of a slide, then we have to add one of these to the end of the chain (via CurrentUserAtom and UserEditAtom) pointing to the new slide location
    • Method Detail

      • getRecordType

        public long getRecordType()
        Return the value we were given at creation, be it 6001 or 6002
        Specified by:
        getRecordType in class Record
      • getKnownSlideIDs

        public int[] getKnownSlideIDs()
        Get the list of slides that this PersistPtrHolder knows about. (They will be the keys in the map for looking up the positions of these slides)
      • getSlideLocationsLookup

        public java.util.Map<java.lang.Integer,​java.lang.Integer> getSlideLocationsLookup()
        Get the lookup from slide numbers to byte offsets, for the slides known about by this PersistPtrHolder.
      • clear

        public void clear()
        remove all slide references Convenience method provided, for easier reviewing of invocations
      • addSlideLookup

        public void addSlideLookup​(int slideID,
                                   int posOnDisk)
        Adds a new slide, notes or similar, to be looked up by this.
      • writeOut

        public void writeOut​(java.io.OutputStream out)
                      throws java.io.IOException
        Write the contents of the record back, so it can be written to disk
        Specified by:
        writeOut in class Record
        Throws:
        java.io.IOException