public final class ByteBufferInput extends Object implements Input
IOUtil where it catches
ArrayIndexOutOfBoundsException when a message is truncated.| Modifier and Type | Field and Description |
|---|---|
boolean |
decodeNestedMessageAsGroup
If true, the nested messages are group-encoded
|
| Constructor and Description |
|---|
ByteBufferInput(ByteBuffer buffer,
boolean protostuffMessage)
An input for a ByteBuffer
|
| Modifier and Type | Method and Description |
|---|---|
void |
checkLastTagWas(int value)
Verifies that the last call to readTag() returned the given tag value.
|
int |
currentLimit()
Returns the current limit (the end index).
|
int |
currentOffset()
Returns the current offset (the position).
|
int |
getLastTag()
Returns the last tag.
|
<T> void |
handleUnknownField(int fieldNumber,
Schema<T> schema) |
boolean |
isCurrentFieldPacked()
Return true if currently reading packed field
|
<T> T |
mergeObject(T value,
Schema<T> schema) |
boolean |
readBool()
Read a
bool field value from the internal buffer. |
byte[] |
readByteArray() |
ByteBuffer |
readByteBuffer()
Reads a byte array/ByteBuffer value.
|
ByteString |
readBytes() |
double |
readDouble()
Read a
double field value from the internal buffer. |
int |
readEnum()
Read an enum field value from the internal buffer.
|
<T> int |
readFieldNumber(Schema<T> schema) |
int |
readFixed32()
Read a
fixed32 field value from the internal buffer. |
long |
readFixed64()
Read a
fixed64 field value from the internal buffer. |
float |
readFloat()
Read a
float field value from the internal buffer. |
int |
readInt32()
Read an
int32 field value from the internal buffer. |
long |
readInt64()
Read an
int64 field value from the internal buffer. |
int |
readRawLittleEndian32()
Read a 32-bit little-endian integer from the internal buffer.
|
long |
readRawLittleEndian64()
Read a 64-bit little-endian integer from the internal byte buffer.
|
int |
readRawVarint32()
Reads a var int 32 from the internal byte buffer.
|
long |
readRawVarint64()
Reads a var int 64 from the internal byte buffer.
|
int |
readSFixed32()
Read an
sfixed32 field value from the internal buffer. |
long |
readSFixed64()
Read an
sfixed64 field value from the internal buffer. |
int |
readSInt32()
Read an
sint32 field value from the internal buffer. |
long |
readSInt64()
Read an
sint64 field value from the internal buffer. |
String |
readString() |
int |
readTag()
Attempt to read a field tag, returning zero if we have reached EOF.
|
int |
readUInt32()
Read a
uint32 field value from the internal buffer. |
long |
readUInt64()
Read a
uint64 field value from the internal buffer. |
ByteBufferInput |
reset(int offset,
int len)
Resets the offset and the limit of the internal buffer.
|
boolean |
skipField(int tag)
Reads and discards a single field, given its tag value.
|
void |
skipMessage()
Reads and discards an entire message.
|
void |
transferByteRangeTo(Output output,
boolean utf8String,
int fieldNumber,
boolean repeated) |
public final boolean decodeNestedMessageAsGroup
public ByteBufferInput(ByteBuffer buffer, boolean protostuffMessage)
buffer - the buffer to read from, it will be slicedprotostuffMessage - if we are parsing a protostuff (true) or protobuf (false) messagepublic ByteBufferInput reset(int offset, int len)
public int currentOffset()
public int currentLimit()
public boolean isCurrentFieldPacked()
public int getLastTag()
public int readTag()
throws IOException
IOExceptionpublic void checkLastTagWas(int value)
throws ProtobufException
ProtobufException - value does not match the last tag.public boolean skipField(int tag)
throws IOException
false if the tag is an endgroup tag, in which case nothing is skipped. Otherwise, returns
true.IOExceptionpublic void skipMessage()
throws IOException
IOExceptionpublic <T> void handleUnknownField(int fieldNumber,
Schema<T> schema)
throws IOException
handleUnknownField in interface InputIOExceptionpublic <T> int readFieldNumber(Schema<T> schema) throws IOException
readFieldNumber in interface InputIOExceptionpublic double readDouble()
throws IOException
double field value from the internal buffer.readDouble in interface InputIOExceptionpublic float readFloat()
throws IOException
float field value from the internal buffer.readFloat in interface InputIOExceptionpublic long readUInt64()
throws IOException
uint64 field value from the internal buffer.readUInt64 in interface InputIOExceptionpublic long readInt64()
throws IOException
int64 field value from the internal buffer.readInt64 in interface InputIOExceptionpublic int readInt32()
throws IOException
int32 field value from the internal buffer.readInt32 in interface InputIOExceptionpublic long readFixed64()
throws IOException
fixed64 field value from the internal buffer.readFixed64 in interface InputIOExceptionpublic int readFixed32()
throws IOException
fixed32 field value from the internal buffer.readFixed32 in interface InputIOExceptionpublic boolean readBool()
throws IOException
bool field value from the internal buffer.readBool in interface InputIOExceptionpublic int readUInt32()
throws IOException
uint32 field value from the internal buffer.readUInt32 in interface InputIOExceptionpublic int readEnum()
throws IOException
readEnum in interface InputIOExceptionpublic int readSFixed32()
throws IOException
sfixed32 field value from the internal buffer.readSFixed32 in interface InputIOExceptionpublic long readSFixed64()
throws IOException
sfixed64 field value from the internal buffer.readSFixed64 in interface InputIOExceptionpublic int readSInt32()
throws IOException
sint32 field value from the internal buffer.readSInt32 in interface InputIOExceptionpublic long readSInt64()
throws IOException
sint64 field value from the internal buffer.readSInt64 in interface InputIOExceptionpublic String readString() throws IOException
readString in interface InputIOExceptionpublic ByteString readBytes() throws IOException
readBytes in interface InputIOExceptionpublic byte[] readByteArray()
throws IOException
readByteArray in interface InputIOExceptionpublic <T> T mergeObject(T value,
Schema<T> schema)
throws IOException
mergeObject in interface InputIOExceptionpublic int readRawVarint32()
throws IOException
IOExceptionpublic long readRawVarint64()
throws IOException
IOExceptionpublic int readRawLittleEndian32()
throws IOException
IOExceptionpublic long readRawLittleEndian64()
throws IOException
IOExceptionpublic void transferByteRangeTo(Output output, boolean utf8String, int fieldNumber, boolean repeated) throws IOException
transferByteRangeTo in interface InputIOExceptionpublic ByteBuffer readByteBuffer() throws IOException
readByteBuffer in interface InputIOExceptionCopyright © 2009–2015. All rights reserved.