Package org.apache.cassandra.io.util
Class RebufferingInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.apache.cassandra.io.util.RebufferingInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataInput,java.lang.AutoCloseable,DataInputPlus
- Direct Known Subclasses:
AsyncStreamingInputPlus,ChecksummedDataInput,CompressedInputStream,DataInputBuffer,FileInputStreamPlus,MemoryInputStream,NIODataInputStream,RandomAccessReader,StreamCompressionInputStream
public abstract class RebufferingInputStream extends java.io.InputStream implements DataInputPlus, java.io.Closeable
Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer. Implementations provide this buffer from various channels (socket, file, memory, etc). RebufferingInputStream is not thread safe.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.cassandra.io.util.DataInputPlus
DataInputPlus.DataInputStreamPlus
-
-
Field Summary
Fields Modifier and Type Field Description protected java.nio.ByteBufferbuffer
-
Constructor Summary
Constructors Modifier Constructor Description protectedRebufferingInputStream(java.nio.ByteBuffer buffer)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description intread()intread(byte[] b, int off, int len)booleanreadBoolean()bytereadByte()charreadChar()doublereadDouble()floatreadFloat()voidreadFully(byte[] b)voidreadFully(byte[] b, int off, int len)voidreadFully(java.nio.ByteBuffer dst)intreadInt()java.lang.StringreadLine()longreadLong()protected longreadPrimitiveSlowly(int bytes)shortreadShort()intreadUnsignedByte()intreadUnsignedShort()longreadUnsignedVInt()Think hard before opting for an unsigned encoding.java.lang.StringreadUTF()longreadVInt()protected abstract voidreBuffer()Implementations must implement this method to refill the buffer.intskipBytes(int n)Always skips the requested number of bytes, unless EOF is reached-
Methods inherited from class java.io.InputStream
available, close, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.io.util.DataInputPlus
skipBytesFully
-
-
-
-
Method Detail
-
reBuffer
protected abstract void reBuffer() throws java.io.IOExceptionImplementations 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:
readFullyin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readFully
public void readFully(byte[] b, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejava.io.DataInput- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
readFully
public void readFully(java.nio.ByteBuffer dst) throws java.io.IOException- 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.IOExceptionDescription copied from interface:DataInputPlusAlways skips the requested number of bytes, unless EOF is reached- Specified by:
skipBytesin interfacejava.io.DataInput- Specified by:
skipBytesin interfaceDataInputPlus- 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:
readBooleanin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readByte
public byte readByte() throws java.io.IOException- Specified by:
readBytein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUnsignedByte
public int readUnsignedByte() throws java.io.IOException- Specified by:
readUnsignedBytein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readShort
public short readShort() throws java.io.IOException- Specified by:
readShortin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUnsignedShort
public int readUnsignedShort() throws java.io.IOException- Specified by:
readUnsignedShortin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readChar
public char readChar() throws java.io.IOException- Specified by:
readCharin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readInt
public int readInt() throws java.io.IOException- Specified by:
readIntin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readLong
public long readLong() throws java.io.IOException- Specified by:
readLongin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readVInt
public long readVInt() throws java.io.IOException- Specified by:
readVIntin interfaceDataInputPlus- Throws:
java.io.IOException
-
readUnsignedVInt
public long readUnsignedVInt() throws java.io.IOExceptionDescription copied from interface:DataInputPlusThink 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:
readUnsignedVIntin interfaceDataInputPlus- Throws:
java.io.IOException
-
readFloat
public float readFloat() throws java.io.IOException- Specified by:
readFloatin interfacejava.io.DataInput- Throws:
java.io.IOException
-
readDouble
public double readDouble() throws java.io.IOException- Specified by:
readDoublein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readLine
public java.lang.String readLine() throws java.io.IOException- Specified by:
readLinein interfacejava.io.DataInput- Throws:
java.io.IOException
-
readUTF
public java.lang.String readUTF() throws java.io.IOException- Specified by:
readUTFin interfacejava.io.DataInput- Throws:
java.io.IOException
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
-