Class ProtoWriter
java.lang.Object
com.codename1.io.grpc.ProtoWriter
public final class ProtoWriter
extends java.lang.Object
Low-level protobuf wire-format writer used by generated
ProtoCodec implementations. Provides per-scalar-type field
emitters that skip default values (proto3 default-omission
behaviour) so the byte sequence matches what protoc-generated
code would emit for the same input.
Wire types (3-bit tag suffix):
| Code | Name | Used for |
|---|---|---|
| 0 | VARINT | int32, int64, uint32, uint64, sint*, bool, enum |
| 1 | I64 | fixed64, sfixed64, double |
| 2 | LEN | string, bytes, embedded messages, packed repeated |
| 5 | I32 | fixed32, sfixed32, float |
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionjava.io.OutputStreamstream()Backing stream so generated codecs can stage a sub-message into aByteArrayOutputStreamand length-prefix the result.voidwriteBool(int field, boolean value) voidwriteBytes(int field, byte[] value) voidwriteDouble(int field, double value) voidwriteFixed32(int value) voidwriteFixed32Field(int field, int value) voidwriteFixed64(long value) voidwriteFixed64Field(int field, long value) voidwriteFloat(int field, float value) voidwriteInt32(int field, int value) voidwriteInt64(int field, long value) <T> voidwriteMessage(int field, T value, ProtoCodec<T> codec) Writes a nested@ProtoMessagevalue as a length-delimited field.<T> voidwriteMessageList(int field, List<T> values, ProtoCodec<T> codec) Writes arepeatedfield of nested messages (one tag + length prefix per element -- proto3 doesn't pack length-delimited repeated entries).voidwritePackedInt32(int field, List<Integer> values) Writes a packedrepeated int32field (proto3 default packing for scalar lists).voidwritePackedInt64(int field, List<Long> values) Writes a packedrepeated int64field.voidwriteSInt32(int field, int value) voidwriteSInt64(int field, long value) voidwriteString(int field, String value) voidwriteStringList(int field, List<String> values) Writes arepeatedfield of strings (one tag + length prefix per element).voidwriteTag(int fieldNumber, int wireType) voidwriteUInt32(int field, int value) voidwriteUInt64(int field, long value) voidwriteVarint32(int value) voidwriteVarint64(long value) static intzigZag32(int n) static longzigZag64(long n) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
WIRE_VARINT
public static final int WIRE_VARINT- See Also:
-
WIRE_I64
public static final int WIRE_I64- See Also:
-
WIRE_LEN
public static final int WIRE_LEN- See Also:
-
WIRE_I32
public static final int WIRE_I32- See Also:
-
-
Constructor Details
-
ProtoWriter
public ProtoWriter(java.io.OutputStream out)
-
-
Method Details
-
stream
public java.io.OutputStream stream()Backing stream so generated codecs can stage a sub-message into aByteArrayOutputStreamand length-prefix the result. -
writeTag
public void writeTag(int fieldNumber, int wireType) throws java.io.IOException - Throws:
java.io.IOException
-
writeVarint32
public void writeVarint32(int value) throws java.io.IOException - Throws:
java.io.IOException
-
writeVarint64
public void writeVarint64(long value) throws java.io.IOException - Throws:
java.io.IOException
-
writeFixed32
public void writeFixed32(int value) throws java.io.IOException - Throws:
java.io.IOException
-
writeFixed64
public void writeFixed64(long value) throws java.io.IOException - Throws:
java.io.IOException
-
zigZag32
public static int zigZag32(int n) -
zigZag64
public static long zigZag64(long n) -
writeInt32
public void writeInt32(int field, int value) throws java.io.IOException - Throws:
java.io.IOException
-
writeInt64
public void writeInt64(int field, long value) throws java.io.IOException - Throws:
java.io.IOException
-
writeUInt32
public void writeUInt32(int field, int value) throws java.io.IOException - Throws:
java.io.IOException
-
writeUInt64
public void writeUInt64(int field, long value) throws java.io.IOException - Throws:
java.io.IOException
-
writeSInt32
public void writeSInt32(int field, int value) throws java.io.IOException - Throws:
java.io.IOException
-
writeSInt64
public void writeSInt64(int field, long value) throws java.io.IOException - Throws:
java.io.IOException
-
writeFixed32Field
public void writeFixed32Field(int field, int value) throws java.io.IOException - Throws:
java.io.IOException
-
writeFixed64Field
public void writeFixed64Field(int field, long value) throws java.io.IOException - Throws:
java.io.IOException
-
writeBool
public void writeBool(int field, boolean value) throws java.io.IOException - Throws:
java.io.IOException
-
writeFloat
public void writeFloat(int field, float value) throws java.io.IOException - Throws:
java.io.IOException
-
writeDouble
public void writeDouble(int field, double value) throws java.io.IOException - Throws:
java.io.IOException
-
writeString
- Throws:
java.io.IOException
-
writeBytes
public void writeBytes(int field, byte[] value) throws java.io.IOException - Throws:
java.io.IOException
-
writeMessage
Writes a nested@ProtoMessagevalue as a length-delimited field. Generated codecs call intoProtoCodecs.lookup(Class)to find the nested codec.- Throws:
java.io.IOException
-
writeMessageList
public <T> void writeMessageList(int field, List<T> values, ProtoCodec<T> codec) throws java.io.IOException Writes arepeatedfield of nested messages (one tag + length prefix per element -- proto3 doesn't pack length-delimited repeated entries).- Throws:
java.io.IOException
-
writeStringList
-
writePackedInt32
-
writePackedInt64
-