Class ReftableOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    class ReftableOutputStream
    extends java.io.OutputStream
    Wrapper to assist formatting a reftable to an OutputStream.

    Internally buffers at block size boundaries, flushing only complete blocks to the OutputStream.

    • Field Detail

      • tmp

        private final byte[] tmp
      • alignBlocks

        private final boolean alignBlocks
      • deflater

        private java.util.zip.Deflater deflater
      • compressor

        private java.util.zip.DeflaterOutputStream compressor
      • blockType

        private int blockType
      • blockSize

        private int blockSize
      • blockStart

        private int blockStart
      • blockBuf

        private byte[] blockBuf
      • cur

        private int cur
      • paddingUsed

        private long paddingUsed
    • Constructor Detail

      • ReftableOutputStream

        ReftableOutputStream​(java.io.OutputStream os,
                             int bs,
                             boolean align)
    • Method Detail

      • setBlockSize

        void setBlockSize​(int bs)
      • write

        public void write​(int b)
        Specified by:
        write in class java.io.OutputStream
      • write

        public void write​(byte[] b,
                          int off,
                          int cnt)
        Overrides:
        write in class java.io.OutputStream
      • bytesWrittenInBlock

        int bytesWrittenInBlock()
      • bytesAvailableInBlock

        int bytesAvailableInBlock()
      • paddingUsed

        long paddingUsed()
      • computeVarintSize

        static int computeVarintSize​(long val)
      • writeVarint

        void writeVarint​(long val)
      • writeInt16

        void writeInt16​(int val)
      • writeInt24

        void writeInt24​(int val)
      • writeId

        void writeId​(ObjectId id)
      • writeVarintString

        void writeVarintString​(java.lang.String s)
      • writeVarintString

        void writeVarintString​(byte[] msg)
      • ensureBytesAvailableInBlockBuf

        private void ensureBytesAvailableInBlockBuf​(int cnt)
      • flushFileHeader

        void flushFileHeader()
                      throws java.io.IOException
        Throws:
        java.io.IOException
      • beginBlock

        void beginBlock​(byte type)
      • flushBlock

        void flushBlock()
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • padBetweenBlocksToNextBlock

        void padBetweenBlocksToNextBlock()
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • estimatePadBetweenBlocks

        int estimatePadBetweenBlocks​(int currentBlockSize)
      • finishFile

        void finishFile()
                 throws java.io.IOException
        Throws:
        java.io.IOException