Class BlockReader

java.lang.Object
org.eclipse.jgit.internal.storage.reftable.BlockReader

class BlockReader extends Object
Reads a single block for ReftableReader. Instances are tied to a specific block in the file so are not reused for other blocks. Instances hold an offset into the block.
  • Field Details

    • blockType

      private byte blockType
    • endPosition

      private long endPosition
    • truncated

      private boolean truncated
    • buf

      private byte[] buf
    • bufLen

      private int bufLen
    • ptr

      private int ptr
    • keysStart

      private int keysStart
    • keysEnd

      private int keysEnd
    • restartCnt

      private int restartCnt
    • restartTbl

      private int restartTbl
    • nameBuf

      private byte[] nameBuf
    • nameLen

      private int nameLen
    • valueType

      private int valueType
  • Constructor Details

    • BlockReader

      BlockReader()
  • Method Details

    • type

      byte type()
    • truncated

      boolean truncated()
    • endPosition

      long endPosition()
    • next

      boolean next()
    • parseKey

      void parseKey()
    • name

      String name()
    • match

      boolean match(byte[] match, boolean matchIsPrefix)
    • readPositionFromIndex

      long readPositionFromIndex() throws IOException
      Throws:
      IOException
    • readUpdateIndexDelta

      long readUpdateIndexDelta()
    • readRef

      Ref readRef(long minUpdateIndex) throws IOException
      Throws:
      IOException
    • readBlockPositionList

      @Nullable LongList readBlockPositionList()
    • readLogUpdateIndex

      long readLogUpdateIndex()
    • readLogEntry

      @Nullable ReflogEntry readLogEntry()
    • readValueId

      private ObjectId readValueId()
    • readValueString

      private String readValueString()
    • readPersonIdent

      private PersonIdent readPersonIdent()
    • readBlock

      void readBlock(BlockSource src, long pos, int fileBlockSize) throws IOException
      Throws:
      IOException
    • readBlockIntoBuf

      private void readBlockIntoBuf(BlockSource src, long pos, int size) throws IOException
      Throws:
      IOException
    • parseBlockStart

      private void parseBlockStart(BlockSource src, long pos, int fileBlockSize) throws IOException
      Throws:
      IOException
    • decodeBlockLen

      static int decodeBlockLen(int typeAndSize)
    • inflateBuf

      private long inflateBuf(BlockSource src, long pos, int blockLen, int fileBlockSize) throws IOException
      Throws:
      IOException
    • setupEmptyFileBlock

      private void setupEmptyFileBlock()
    • verifyIndex

      void verifyIndex() throws IOException
      Throws:
      IOException
    • seekKey

      int seekKey(byte[] key)
      Finds a key in the block and positions the current pointer on its record.

      As a side-effect this method arranges for the current pointer to be near or exactly on key, allowing other methods to access data from that current record:

      Parameters:
      key - key to find.
      Returns:
      <0 if the key occurs before the start of this block; 0 if the block is positioned on the key; >0 if the key occurs after the last key of this block.
    • scanToKey

      private int scanToKey(byte[] key, int rPtr, int rIdx, int rCmp)
      Performs the linear search step within a restart interval.

      Starts at a restart position whose key sorts before (or equal to) key and walks sequentially through the following prefix compressed records to find key.

      Parameters:
      key - key the caller wants to find.
      rPtr - current record pointer from restart table binary search.
      rIdx - current restart table index.
      rCmp - result of compare from restart table binary search.
      Returns:
      <0 if the key occurs before the start of this block; 0 if the block is positioned on the key; >0 if the key occurs after the last key of this block.
    • skipValue

      void skipValue()
    • skipString

      private void skipString()
    • readInt16

      private short readInt16()
    • readVarint32

      private int readVarint32()
    • readVarint64

      private long readVarint64()
    • newRef

      private static Ref newRef(String name, long updateIndex)
    • invalidBlock

      private static IOException invalidBlock()
    • invalidBlock

      private static IOException invalidBlock(Throwable cause)