Class RebufferingInputStream

    • Field Detail

      • buffer

        protected java.nio.ByteBuffer buffer
    • Constructor Detail

      • RebufferingInputStream

        protected RebufferingInputStream​(java.nio.ByteBuffer buffer)
    • Method Detail

      • reBuffer

        protected abstract void reBuffer()
                                  throws java.io.IOException
        Implementations must implement this method to refill the buffer. They can expect the buffer to be empty when this method is invoked.
        Throws:
        java.io.IOException
      • readFully

        public void readFully​(byte[] b)
                       throws java.io.IOException
        Specified by:
        readFully in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readFully

        public void readFully​(byte[] b,
                              int off,
                              int len)
                       throws java.io.IOException
        Specified by:
        readFully in interface java.io.DataInput
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • readFully

        public void readFully​(java.nio.ByteBuffer dst)
                       throws java.io.IOException
        Equivalent to read(byte[], int, int), where offset is dst.position() and length is dst.remaining()
        Throws:
        java.io.IOException
      • readPrimitiveSlowly

        @DontInline
        protected long readPrimitiveSlowly​(int bytes)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • skipBytes

        public int skipBytes​(int n)
                      throws java.io.IOException
        Description copied from interface: DataInputPlus
        Always skips the requested number of bytes, unless EOF is reached
        Specified by:
        skipBytes in interface java.io.DataInput
        Specified by:
        skipBytes in interface DataInputPlus
        Parameters:
        n - number of bytes to skip
        Returns:
        number of bytes skipped
        Throws:
        java.io.IOException
      • readBoolean

        public boolean readBoolean()
                            throws java.io.IOException
        Specified by:
        readBoolean in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readByte

        public byte readByte()
                      throws java.io.IOException
        Specified by:
        readByte in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUnsignedByte

        public int readUnsignedByte()
                             throws java.io.IOException
        Specified by:
        readUnsignedByte in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readShort

        public short readShort()
                        throws java.io.IOException
        Specified by:
        readShort in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUnsignedShort

        public int readUnsignedShort()
                              throws java.io.IOException
        Specified by:
        readUnsignedShort in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readChar

        public char readChar()
                      throws java.io.IOException
        Specified by:
        readChar in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readInt

        public int readInt()
                    throws java.io.IOException
        Specified by:
        readInt in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readLong

        public long readLong()
                      throws java.io.IOException
        Specified by:
        readLong in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readVInt

        public long readVInt()
                      throws java.io.IOException
        Description copied from interface: DataInputPlus
        Read a 64-bit integer back. This method assumes it was originally written using DataOutputPlus.writeVInt(long) or similar that zigzag encodes the vint.
        Specified by:
        readVInt in interface DataInputPlus
        Throws:
        java.io.IOException
      • readVInt32

        public int readVInt32()
                       throws java.io.IOException
        Description copied from interface: DataInputPlus
        Read up to a 32-bit integer back. This method assumes the integer was originally written using DataOutputPlus.writeVInt32(int) or similar that zigzag encodes the vint.
        Specified by:
        readVInt32 in interface DataInputPlus
        Throws:
        java.io.IOException
      • readUnsignedVInt

        public long readUnsignedVInt()
                              throws java.io.IOException
        Description copied from interface: DataInputPlus
        Think hard before opting for an unsigned encoding. Is this going to bite someone because some day they might need to pass in a sentinel value using negative numbers? Is the risk worth it to save a few bytes? Signed, not a fan of unsigned values in protocols and formats
        Specified by:
        readUnsignedVInt in interface DataInputPlus
        Throws:
        java.io.IOException
      • readFloat

        public float readFloat()
                        throws java.io.IOException
        Specified by:
        readFloat in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readDouble

        public double readDouble()
                          throws java.io.IOException
        Specified by:
        readDouble in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readLine

        public java.lang.String readLine()
                                  throws java.io.IOException
        Specified by:
        readLine in interface java.io.DataInput
        Throws:
        java.io.IOException
      • readUTF

        public java.lang.String readUTF()
                                 throws java.io.IOException
        Specified by:
        readUTF in interface java.io.DataInput
        Throws:
        java.io.IOException
      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException