public class ChecksummedDataInput extends RandomAccessReader.RandomAccessReaderWithOwnChannel
RandomAccessReader wrapper that calctulates the CRC in place.
Useful for HintsReader, for example, where we must verify the CRC, yet don't want
to allocate an extra byte array just that purpose. The CRC can be embedded in the input stream and checked via checkCrc().
In addition to calculating the CRC, it allows to enforce a maximim known size. This is needed
so that Mutation.MutationSerializer doesn't blow up the heap when deserializing a
corrupted sequence by reading a huge corrupted length of bytes via
via ByteBufferUtil.readWithLength(java.io.DataInput).| Modifier and Type | Class and Description |
|---|---|
static class |
ChecksummedDataInput.Builder |
RandomAccessReader.BufferedRandomAccessFileMark, RandomAccessReader.RandomAccessReaderWithOwnChannelDataInputPlus.DataInputStreamPlusbufferOffset, bufferSize, bufferType, channel, DEFAULT_BUFFER_SIZE, limiter, markedPointer, MAX_BUFFER_SIZE, regionsbuffer| Modifier | Constructor and Description |
|---|---|
protected |
ChecksummedDataInput(ChecksummedDataInput.Builder builder) |
| Modifier and Type | Method and Description |
|---|---|
long |
bytesPastLimit() |
boolean |
checkCrc() |
void |
checkLimit(int length) |
void |
limit(long newLimit) |
static ChecksummedDataInput |
open(java.io.File file) |
int |
read(byte[] b,
int off,
int len) |
void |
readFully(byte[] b) |
void |
reBuffer()
Read data from file starting from current currentOffset to populate buffer.
|
protected void |
releaseBuffer() |
void |
resetCrc() |
void |
resetLimit() |
closeallocateBuffer, available, bytesPastMark, bytesPastMark, bytesRemaining, current, getChannel, getFilePointer, getPath, getPosition, isEOF, length, mark, markSupported, open, readLine, reBufferMmap, reBufferStandard, reset, reset, seek, toStringread, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readInt, readLong, readPrimitiveSlowly, readShort, readUnsignedByte, readUnsignedShort, readUnsignedVInt, readUTF, readVInt, skipBytesclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitreadUnsignedVInt, readVInt, skipBytes, skipBytesFullyprotected ChecksummedDataInput(ChecksummedDataInput.Builder builder)
public static ChecksummedDataInput open(java.io.File file)
protected void releaseBuffer()
releaseBuffer in class RandomAccessReaderpublic void resetCrc()
public void limit(long newLimit)
public void resetLimit()
public void checkLimit(int length)
throws java.io.IOException
java.io.IOExceptionpublic long bytesPastLimit()
public boolean checkCrc()
throws java.io.IOException
java.io.IOExceptionpublic void readFully(byte[] b)
throws java.io.IOException
readFully in interface java.io.DataInputreadFully in class RebufferingInputStreamjava.io.IOExceptionpublic int read(byte[] b,
int off,
int len)
throws java.io.IOException
read in class RebufferingInputStreamjava.io.IOExceptionpublic void reBuffer()
RandomAccessReaderreBuffer in class RandomAccessReaderCopyright © 2016 The Apache Software Foundation