Package com.google.protobuf
Class ArrayDecoders
java.lang.Object
com.google.protobuf.ArrayDecoders
Helper functions to decode protobuf wire format from a byte array.
Note that these functions don't do boundary check on the byte array but instead rely on Java VM to check it. That means parsing routines utilizing these functions must catch IndexOutOfBoundsException and convert it to protobuf's InvalidProtocolBufferException when crossing protobuf public API boundaries.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final classA helper used to return multiple values in a Java function. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static intdecodeBoolList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated boolean field.(package private) static intdecodeBytes(byte[] data, int position, ArrayDecoders.Registers registers) Decodes a bytes value.(package private) static intdecodeBytesList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated bytes field.(package private) static doubledecodeDouble(byte[] data, int position) Decodes and returns a double value.(package private) static intdecodeDoubleList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated double field.(package private) static intdecodeExtension(int tag, byte[] data, int position, int limit, GeneratedMessageLite.ExtendableMessage<?, ?> message, GeneratedMessageLite.GeneratedExtension<?, ?> extension, UnknownFieldSchema<UnknownFieldSetLite, UnknownFieldSetLite> unknownFieldSchema, ArrayDecoders.Registers registers) (package private) static intdecodeExtensionOrUnknownField(int tag, byte[] data, int position, int limit, Object message, MessageLite defaultInstance, UnknownFieldSchema<UnknownFieldSetLite, UnknownFieldSetLite> unknownFieldSchema, ArrayDecoders.Registers registers) (package private) static intdecodeFixed32(byte[] data, int position) Decodes and returns a fixed32 value.(package private) static intdecodeFixed32List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated fixed32 field.(package private) static longdecodeFixed64(byte[] data, int position) Decodes and returns a fixed64 value.(package private) static intdecodeFixed64List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated fixed64 field.(package private) static floatdecodeFloat(byte[] data, int position) Decodes and returns a float value.(package private) static intdecodeFloatList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated float field.(package private) static intdecodeGroupField(Schema schema, byte[] data, int position, int limit, int endGroup, ArrayDecoders.Registers registers) Decodes a group value.(package private) static intdecodeGroupList(Schema schema, int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated group field(package private) static intdecodeMessageField(Schema schema, byte[] data, int position, int limit, ArrayDecoders.Registers registers) Decodes a message value.(package private) static intdecodeMessageList(Schema<?> schema, int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated message field(package private) static intdecodePackedBoolList(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed boolean field.(package private) static intdecodePackedDoubleList(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed double field.(package private) static intdecodePackedFixed32List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed fixed32 field.(package private) static intdecodePackedFixed64List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed fixed64 field.(package private) static intdecodePackedFloatList(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed float field.(package private) static intdecodePackedSInt32List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed sint32 field.(package private) static intdecodePackedSInt64List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed sint64 field.(package private) static intdecodePackedVarint32List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed 32-bit varint field.(package private) static intdecodePackedVarint64List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a packed 64-bit varint field.(package private) static intdecodeSInt32List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated sint32 field.(package private) static intdecodeSInt64List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated sint64 field.(package private) static intdecodeString(byte[] data, int position, ArrayDecoders.Registers registers) Decodes a string value.(package private) static intdecodeStringList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated string field.(package private) static intdecodeStringListRequireUtf8(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated string field with utf8 check.(package private) static intdecodeStringRequireUtf8(byte[] data, int position, ArrayDecoders.Registers registers) Decodes a string value with utf8 check.(package private) static intdecodeUnknownField(int tag, byte[] data, int position, int limit, UnknownFieldSetLite unknownFields, ArrayDecoders.Registers registers) Decodes an unknown field.(package private) static intdecodeVarint32(byte[] data, int position, ArrayDecoders.Registers registers) Decodes a varint.(package private) static intdecodeVarint32(int firstByte, byte[] data, int position, ArrayDecoders.Registers registers) Like decodeVarint32 except that the first byte is already read.(package private) static intdecodeVarint32List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated 32-bit varint field.(package private) static intdecodeVarint64(byte[] data, int position, ArrayDecoders.Registers registers) Decodes a varint.(package private) static intdecodeVarint64(long firstByte, byte[] data, int position, ArrayDecoders.Registers registers) Like decodeVarint64 except that the first byte is already read.(package private) static intdecodeVarint64List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated 64-bit varint field.(package private) static intmergeGroupField(Object msg, Schema schema, byte[] data, int position, int limit, int endGroup, ArrayDecoders.Registers registers) (package private) static intmergeMessageField(Object msg, Schema schema, byte[] data, int position, int limit, ArrayDecoders.Registers registers) (package private) static intskipField(int tag, byte[] data, int position, int limit, ArrayDecoders.Registers registers) Skips an unknown field.
-
Constructor Details
-
ArrayDecoders
private ArrayDecoders()
-
-
Method Details
-
decodeVarint32
Decodes a varint. Returns the position after the varint. The decoded varint is stored in registers.int1. -
decodeVarint32
static int decodeVarint32(int firstByte, byte[] data, int position, ArrayDecoders.Registers registers) Like decodeVarint32 except that the first byte is already read. -
decodeVarint64
Decodes a varint. Returns the position after the varint. The decoded varint is stored in registers.long1. -
decodeVarint64
static int decodeVarint64(long firstByte, byte[] data, int position, ArrayDecoders.Registers registers) Like decodeVarint64 except that the first byte is already read. -
decodeFixed32
static int decodeFixed32(byte[] data, int position) Decodes and returns a fixed32 value. -
decodeFixed64
static long decodeFixed64(byte[] data, int position) Decodes and returns a fixed64 value. -
decodeDouble
static double decodeDouble(byte[] data, int position) Decodes and returns a double value. -
decodeFloat
static float decodeFloat(byte[] data, int position) Decodes and returns a float value. -
decodeString
static int decodeString(byte[] data, int position, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes a string value.- Throws:
InvalidProtocolBufferException
-
decodeStringRequireUtf8
static int decodeStringRequireUtf8(byte[] data, int position, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes a string value with utf8 check.- Throws:
InvalidProtocolBufferException
-
decodeBytes
static int decodeBytes(byte[] data, int position, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes a bytes value.- Throws:
InvalidProtocolBufferException
-
decodeMessageField
static int decodeMessageField(Schema schema, byte[] data, int position, int limit, ArrayDecoders.Registers registers) throws IOException Decodes a message value.- Throws:
IOException
-
decodeGroupField
static int decodeGroupField(Schema schema, byte[] data, int position, int limit, int endGroup, ArrayDecoders.Registers registers) throws IOException Decodes a group value.- Throws:
IOException
-
mergeMessageField
static int mergeMessageField(Object msg, Schema schema, byte[] data, int position, int limit, ArrayDecoders.Registers registers) throws IOException - Throws:
IOException
-
mergeGroupField
static int mergeGroupField(Object msg, Schema schema, byte[] data, int position, int limit, int endGroup, ArrayDecoders.Registers registers) throws IOException - Throws:
IOException
-
decodeVarint32List
static int decodeVarint32List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated 32-bit varint field. Returns the position after all read values. -
decodeVarint64List
static int decodeVarint64List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated 64-bit varint field. Returns the position after all read values. -
decodeFixed32List
static int decodeFixed32List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated fixed32 field. Returns the position after all read values. -
decodeFixed64List
static int decodeFixed64List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated fixed64 field. Returns the position after all read values. -
decodeFloatList
static int decodeFloatList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated float field. Returns the position after all read values. -
decodeDoubleList
static int decodeDoubleList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated double field. Returns the position after all read values. -
decodeBoolList
static int decodeBoolList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated boolean field. Returns the position after all read values. -
decodeSInt32List
static int decodeSInt32List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated sint32 field. Returns the position after all read values. -
decodeSInt64List
static int decodeSInt64List(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) Decodes a repeated sint64 field. Returns the position after all read values. -
decodePackedVarint32List
static int decodePackedVarint32List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed 32-bit varint field. Returns the position after all read values.- Throws:
IOException
-
decodePackedVarint64List
static int decodePackedVarint64List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed 64-bit varint field. Returns the position after all read values.- Throws:
IOException
-
decodePackedFixed32List
static int decodePackedFixed32List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed fixed32 field. Returns the position after all read values.- Throws:
IOException
-
decodePackedFixed64List
static int decodePackedFixed64List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed fixed64 field. Returns the position after all read values.- Throws:
IOException
-
decodePackedFloatList
static int decodePackedFloatList(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed float field. Returns the position after all read values.- Throws:
IOException
-
decodePackedDoubleList
static int decodePackedDoubleList(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed double field. Returns the position after all read values.- Throws:
IOException
-
decodePackedBoolList
static int decodePackedBoolList(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed boolean field. Returns the position after all read values.- Throws:
IOException
-
decodePackedSInt32List
static int decodePackedSInt32List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed sint32 field. Returns the position after all read values.- Throws:
IOException
-
decodePackedSInt64List
static int decodePackedSInt64List(byte[] data, int position, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a packed sint64 field. Returns the position after all read values.- Throws:
IOException
-
decodeStringList
static int decodeStringList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes a repeated string field. Returns the position after all read values.- Throws:
InvalidProtocolBufferException
-
decodeStringListRequireUtf8
static int decodeStringListRequireUtf8(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes a repeated string field with utf8 check. Returns the position after all read values.- Throws:
InvalidProtocolBufferException
-
decodeBytesList
static int decodeBytesList(int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes a repeated bytes field. Returns the position after all read values.- Throws:
InvalidProtocolBufferException
-
decodeMessageList
static int decodeMessageList(Schema<?> schema, int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a repeated message field- Returns:
- The position of after read all messages
- Throws:
IOException
-
decodeGroupList
static int decodeGroupList(Schema schema, int tag, byte[] data, int position, int limit, Internal.ProtobufList<?> list, ArrayDecoders.Registers registers) throws IOException Decodes a repeated group field- Returns:
- The position of after read all groups
- Throws:
IOException
-
decodeExtensionOrUnknownField
static int decodeExtensionOrUnknownField(int tag, byte[] data, int position, int limit, Object message, MessageLite defaultInstance, UnknownFieldSchema<UnknownFieldSetLite, UnknownFieldSetLite> unknownFieldSchema, ArrayDecoders.Registers registers) throws IOException- Throws:
IOException
-
decodeExtension
static int decodeExtension(int tag, byte[] data, int position, int limit, GeneratedMessageLite.ExtendableMessage<?, ?> message, GeneratedMessageLite.GeneratedExtension<?, throws IOException?> extension, UnknownFieldSchema<UnknownFieldSetLite, UnknownFieldSetLite> unknownFieldSchema, ArrayDecoders.Registers registers) - Throws:
IOException
-
decodeUnknownField
static int decodeUnknownField(int tag, byte[] data, int position, int limit, UnknownFieldSetLite unknownFields, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Decodes an unknown field.- Throws:
InvalidProtocolBufferException
-
skipField
static int skipField(int tag, byte[] data, int position, int limit, ArrayDecoders.Registers registers) throws InvalidProtocolBufferException Skips an unknown field.- Throws:
InvalidProtocolBufferException
-