|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.dyuproject.protostuff.CodedInput
public final class CodedInput
Reads and decodes protocol message fields.
This class contains two kinds of methods: methods that read specific
protocol message constructs and field types (e.g. readTag() and
readInt32()) and methods that read low-level values (e.g.
readRawVarint32() and readRawBytes(int)). If you are reading
encoded protocol messages, you should use the former methods, but if you are
reading some other format of your own design, use the latter.
| Field Summary | |
|---|---|
boolean |
decodeNestedMessageAsGroup
If true, the nested messages are group-encoded |
| Constructor Summary | |
|---|---|
CodedInput(byte[] buffer,
int off,
int len,
boolean decodeNestedMessageAsGroup)
|
|
CodedInput(java.io.InputStream input,
boolean decodeNestedMessageAsGroup)
|
|
CodedInput(java.io.InputStream input,
byte[] buffer,
boolean decodeNestedMessageAsGroup)
|
|
CodedInput(java.io.InputStream input,
byte[] buffer,
int offset,
int limit,
boolean decodeNestedMessageAsGroup)
|
|
| Method Summary | ||
|---|---|---|
void |
checkLastTagWas(int value)
Verifies that the last call to readTag() returned the given tag value. |
|
static int |
decodeZigZag32(int n)
Decode a ZigZag-encoded 32-bit value. |
|
static long |
decodeZigZag64(long n)
Decode a ZigZag-encoded 64-bit value. |
|
int |
getBytesUntilLimit()
Returns the number of bytes to be read before the current limit. |
|
int |
getLastTag()
Returns the last tag. |
|
int |
getTotalBytesRead()
The total bytes read up to the current position. |
|
|
handleUnknownField(int fieldNumber,
Schema<T> schema)
|
|
boolean |
isAtEnd()
Returns true if the stream has reached the end of the input. |
|
|
mergeObject(T value,
Schema<T> schema)
|
|
static CodedInput |
newInstance(byte[] buf)
Create a new CodedInput wrapping the given byte array. |
|
static CodedInput |
newInstance(byte[] buf,
int off,
int len)
Create a new CodedInput wrapping the given byte array slice. |
|
static CodedInput |
newInstance(java.io.InputStream input)
Create a new CodedInput wrapping the given InputStream. |
|
void |
popLimit(int oldLimit)
Discards the current limit, returning to the previous limit. |
|
int |
pushLimit(int byteLimit)
Note that pushLimit() does NOT affect how many bytes the
CodedInputStream reads from an underlying InputStream when
refreshing its buffer. |
|
boolean |
readBool()
Read a bool field value from the stream. |
|
byte[] |
readByteArray()
|
|
ByteString |
readBytes()
Read a bytes field value from the stream. |
|
double |
readDouble()
Read a double field value from the stream. |
|
int |
readEnum()
Read an enum field value from the stream. |
|
|
readFieldNumber(Schema<T> schema)
|
|
int |
readFixed32()
Read a fixed32 field value from the stream. |
|
long |
readFixed64()
Read a fixed64 field value from the stream. |
|
float |
readFloat()
Read a float field value from the stream. |
|
int |
readInt32()
Read an int32 field value from the stream. |
|
long |
readInt64()
Read an int64 field value from the stream. |
|
byte |
readRawByte()
Read one byte from the input. |
|
byte[] |
readRawBytes(int size)
Read a fixed size of bytes from the input. |
|
int |
readRawLittleEndian32()
Read a 32-bit little-endian integer from the stream. |
|
long |
readRawLittleEndian64()
Read a 64-bit little-endian integer from the stream. |
|
int |
readRawVarint32()
Read a raw Varint from the stream. |
|
long |
readRawVarint64()
Read a raw Varint from the stream. |
|
int |
readSFixed32()
Read an sfixed32 field value from the stream. |
|
long |
readSFixed64()
Read an sfixed64 field value from the stream. |
|
int |
readSInt32()
Read an sint32 field value from the stream. |
|
long |
readSInt64()
Read an sint64 field value from the stream. |
|
java.lang.String |
readString()
Read a string field value from the stream. |
|
int |
readTag()
Attempt to read a field tag, returning zero if we have reached EOF. |
|
int |
readUInt32()
Read a uint32 field value from the stream. |
|
long |
readUInt64()
Read a uint64 field value from the stream. |
|
void |
resetSizeCounter()
Resets the current size counter to zero (see setSizeLimit(int)). |
|
int |
setSizeLimit(int limit)
Set the maximum message size. |
|
boolean |
skipField(int tag)
Reads and discards a single field, given its tag value. |
|
void |
skipMessage()
Reads and discards an entire message. |
|
void |
skipRawBytes(int size)
Reads and discards size bytes. |
|
void |
transferByteRangeTo(Output output,
boolean utf8String,
int fieldNumber,
boolean repeated)
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public final boolean decodeNestedMessageAsGroup
| Constructor Detail |
|---|
public CodedInput(byte[] buffer,
int off,
int len,
boolean decodeNestedMessageAsGroup)
public CodedInput(java.io.InputStream input,
boolean decodeNestedMessageAsGroup)
public CodedInput(java.io.InputStream input,
byte[] buffer,
boolean decodeNestedMessageAsGroup)
public CodedInput(java.io.InputStream input,
byte[] buffer,
int offset,
int limit,
boolean decodeNestedMessageAsGroup)
| Method Detail |
|---|
public static CodedInput newInstance(java.io.InputStream input)
public static CodedInput newInstance(byte[] buf)
public static CodedInput newInstance(byte[] buf,
int off,
int len)
public int readTag()
throws java.io.IOException
java.io.IOException
public void checkLastTagWas(int value)
throws ProtobufException
ProtobufException - value does not match the
last tag.
public boolean skipField(int tag)
throws java.io.IOException
false if the tag is an endgroup tag, in which case
nothing is skipped. Otherwise, returns true.
java.io.IOException
public void skipMessage()
throws java.io.IOException
java.io.IOException
public double readDouble()
throws java.io.IOException
double field value from the stream.
readDouble in interface Inputjava.io.IOException
public float readFloat()
throws java.io.IOException
float field value from the stream.
readFloat in interface Inputjava.io.IOException
public long readUInt64()
throws java.io.IOException
uint64 field value from the stream.
readUInt64 in interface Inputjava.io.IOException
public long readInt64()
throws java.io.IOException
int64 field value from the stream.
readInt64 in interface Inputjava.io.IOException
public int readInt32()
throws java.io.IOException
int32 field value from the stream.
readInt32 in interface Inputjava.io.IOException
public long readFixed64()
throws java.io.IOException
fixed64 field value from the stream.
readFixed64 in interface Inputjava.io.IOException
public int readFixed32()
throws java.io.IOException
fixed32 field value from the stream.
readFixed32 in interface Inputjava.io.IOException
public boolean readBool()
throws java.io.IOException
bool field value from the stream.
readBool in interface Inputjava.io.IOException
public java.lang.String readString()
throws java.io.IOException
string field value from the stream.
readString in interface Inputjava.io.IOException
public <T> T mergeObject(T value,
Schema<T> schema)
throws java.io.IOException
mergeObject in interface Inputjava.io.IOException
public ByteString readBytes()
throws java.io.IOException
bytes field value from the stream.
readBytes in interface Inputjava.io.IOException
public int readUInt32()
throws java.io.IOException
uint32 field value from the stream.
readUInt32 in interface Inputjava.io.IOException
public int readEnum()
throws java.io.IOException
readEnum in interface Inputjava.io.IOException
public int readSFixed32()
throws java.io.IOException
sfixed32 field value from the stream.
readSFixed32 in interface Inputjava.io.IOException
public long readSFixed64()
throws java.io.IOException
sfixed64 field value from the stream.
readSFixed64 in interface Inputjava.io.IOException
public int readSInt32()
throws java.io.IOException
sint32 field value from the stream.
readSInt32 in interface Inputjava.io.IOException
public long readSInt64()
throws java.io.IOException
sint64 field value from the stream.
readSInt64 in interface Inputjava.io.IOException
public int readRawVarint32()
throws java.io.IOException
java.io.IOException
public long readRawVarint64()
throws java.io.IOException
java.io.IOException
public int readRawLittleEndian32()
throws java.io.IOException
java.io.IOException
public long readRawLittleEndian64()
throws java.io.IOException
java.io.IOExceptionpublic static int decodeZigZag32(int n)
n - An unsigned 32-bit integer, stored in a signed int because
Java has no explicit unsigned support.
public static long decodeZigZag64(long n)
n - An unsigned 64-bit integer, stored in a signed int because
Java has no explicit unsigned support.
public int setSizeLimit(int limit)
CodedInput limits how large a message may be.
The default limit is 64MB. You should set this limit as small
as you can without harming your app's functionality. Note that
size limits only apply when reading from an InputStream, not
when constructed around a raw byte array.
If you want to read several messages from a single CodedInput, you
could call resetSizeCounter() after each one to avoid hitting the
size limit.
public void resetSizeCounter()
setSizeLimit(int)).
The field totalBytesRetired will be negative if the initial
position was not zero.
public int pushLimit(int byteLimit)
throws ProtobufException
pushLimit() does NOT affect how many bytes the
CodedInputStream reads from an underlying InputStream when
refreshing its buffer. If you need to prevent reading past a certain
point in the underlying InputStream (e.g. because you expect it to
contain more data after the end of the message which you need to handle
differently) then you must place a wrapper around your InputStream
which limits the amount of data that can be read from it.
ProtobufExceptionpublic void popLimit(int oldLimit)
oldLimit - The old limit, as returned by pushLimit.public int getBytesUntilLimit()
public boolean isAtEnd()
throws java.io.IOException
pushLimit(int).
java.io.IOExceptionpublic int getTotalBytesRead()
resetSizeCounter() resets this value to zero.
public byte readRawByte()
throws java.io.IOException
ProtobufException - The end of the stream or the current
limit was reached.
java.io.IOException
public byte[] readRawBytes(int size)
throws java.io.IOException
ProtobufException - The end of the stream or the current
limit was reached.
java.io.IOException
public void skipRawBytes(int size)
throws java.io.IOException
size bytes.
ProtobufException - The end of the stream or the current
limit was reached.
java.io.IOException
public <T> int readFieldNumber(Schema<T> schema)
throws java.io.IOException
readFieldNumber in interface Inputjava.io.IOException
public byte[] readByteArray()
throws java.io.IOException
readByteArray in interface Inputjava.io.IOException
public <T> void handleUnknownField(int fieldNumber,
Schema<T> schema)
throws java.io.IOException
handleUnknownField in interface Inputjava.io.IOException
public void transferByteRangeTo(Output output,
boolean utf8String,
int fieldNumber,
boolean repeated)
throws java.io.IOException
transferByteRangeTo in interface Inputjava.io.IOExceptionpublic int getLastTag()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||