Package com.google.protobuf
Class CodedOutputStream
java.lang.Object
com.google.protobuf.CodedOutputStream
Encodes and writes protocol message fields.
This class contains two kinds of methods: methods that write specific
protocol message constructs and field types (e.g. writeTag(int, int) and
writeInt32(int, int)) and methods that write low-level values (e.g.
writeRawVarint32(int) and writeRawBytes(com.google.protobuf.ByteString)). If you are
writing encoded protocol messages, you should use the former methods, but if
you are writing some other format of your own design, use the latter.
This class is totally unsynchronized.
- Author:
- kneton@google.com Kenton Varda
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classIf you create a CodedOutputStream around a simple flat array, you must not attempt to write more bytes than the array has space. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe buffer size used innewInstance(OutputStream).static final intstatic final int -
Method Summary
Modifier and TypeMethodDescriptionvoidVerifies thatspaceLeft()returns zero.static intcomputeBoolSize(int fieldNumber, boolean value) Compute the number of bytes that would be needed to encode aboolfield, including tag.static intcomputeBoolSizeNoTag(boolean value) Compute the number of bytes that would be needed to encode aboolfield.static intcomputeByteArraySize(int fieldNumber, byte[] value) Compute the number of bytes that would be needed to encode abytesfield, including tag.static intcomputeByteArraySizeNoTag(byte[] value) Compute the number of bytes that would be needed to encode abytesfield.static intcomputeByteBufferSize(int fieldNumber, ByteBuffer value) Compute the number of bytes that would be needed to encode abytesfield, including tag.static intCompute the number of bytes that would be needed to encode abytesfield.static intcomputeBytesSize(int fieldNumber, ByteString value) Compute the number of bytes that would be needed to encode abytesfield, including tag.static intcomputeBytesSizeNoTag(ByteString value) Compute the number of bytes that would be needed to encode abytesfield.static intcomputeDoubleSize(int fieldNumber, double value) Compute the number of bytes that would be needed to encode adoublefield, including tag.static intcomputeDoubleSizeNoTag(double value) Compute the number of bytes that would be needed to encode adoublefield, including tag.static intcomputeEnumSize(int fieldNumber, int value) Compute the number of bytes that would be needed to encode an enum field, including tag.static intcomputeEnumSizeNoTag(int value) Compute the number of bytes that would be needed to encode an enum field.static intcomputeFixed32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode afixed32field, including tag.static intcomputeFixed32SizeNoTag(int value) Compute the number of bytes that would be needed to encode afixed32field.static intcomputeFixed64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode afixed64field, including tag.static intcomputeFixed64SizeNoTag(long value) Compute the number of bytes that would be needed to encode afixed64field.static intcomputeFloatSize(int fieldNumber, float value) Compute the number of bytes that would be needed to encode afloatfield, including tag.static intcomputeFloatSizeNoTag(float value) Compute the number of bytes that would be needed to encode afloatfield, including tag.static intcomputeGroupSize(int fieldNumber, MessageLite value) Compute the number of bytes that would be needed to encode agroupfield, including tag.static intcomputeGroupSizeNoTag(MessageLite value) Compute the number of bytes that would be needed to encode agroupfield.static intcomputeInt32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode anint32field, including tag.static intcomputeInt32SizeNoTag(int value) Compute the number of bytes that would be needed to encode anint32field, including tag.static intcomputeInt64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode anint64field, including tag.static intcomputeInt64SizeNoTag(long value) Compute the number of bytes that would be needed to encode anint64field, including tag.static intcomputeLazyFieldMessageSetExtensionSize(int fieldNumber, LazyFieldLite value) Compute the number of bytes that would be needed to encode an lazily parsed MessageSet extension field to the stream.static intcomputeLazyFieldSize(int fieldNumber, LazyFieldLite value) Compute the number of bytes that would be needed to encode an embedded message in lazy field, including tag.static intCompute the number of bytes that would be needed to encode an embedded message stored in lazy field.static intcomputeMessageSetExtensionSize(int fieldNumber, MessageLite value) Compute the number of bytes that would be needed to encode a MessageSet extension to the stream.static intcomputeMessageSize(int fieldNumber, MessageLite value) Compute the number of bytes that would be needed to encode an embedded message field, including tag.static intCompute the number of bytes that would be needed to encode an embedded message field.static intcomputeRawMessageSetExtensionSize(int fieldNumber, ByteString value) Compute the number of bytes that would be needed to encode an unparsed MessageSet extension field to the stream.static intcomputeRawVarint32Size(int value) Compute the number of bytes that would be needed to encode a varint.static intcomputeRawVarint64Size(long value) Compute the number of bytes that would be needed to encode a varint.static intcomputeSFixed32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode ansfixed32field, including tag.static intcomputeSFixed32SizeNoTag(int value) Compute the number of bytes that would be needed to encode ansfixed32field.static intcomputeSFixed64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode ansfixed64field, including tag.static intcomputeSFixed64SizeNoTag(long value) Compute the number of bytes that would be needed to encode ansfixed64field.static intcomputeSInt32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode ansint32field, including tag.static intcomputeSInt32SizeNoTag(int value) Compute the number of bytes that would be needed to encode ansint32field.static intcomputeSInt64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode ansint64field, including tag.static intcomputeSInt64SizeNoTag(long value) Compute the number of bytes that would be needed to encode ansint64field.static intcomputeStringSize(int fieldNumber, String value) Compute the number of bytes that would be needed to encode astringfield, including tag.static intcomputeStringSizeNoTag(String value) Compute the number of bytes that would be needed to encode astringfield.static intcomputeTagSize(int fieldNumber) Compute the number of bytes that would be needed to encode a tag.static intcomputeUInt32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode auint32field, including tag.static intcomputeUInt32SizeNoTag(int value) Compute the number of bytes that would be needed to encode auint32field.static intcomputeUInt64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode auint64field, including tag.static intcomputeUInt64SizeNoTag(long value) Compute the number of bytes that would be needed to encode auint64field, including tag.static intcomputeUnknownGroupSize(int fieldNumber, MessageLite value) Deprecated.static intDeprecated.UnknownFieldSet now implements MessageLite, so you can just callcomputeUnknownGroupSizeNoTag(com.google.protobuf.MessageLite).static intencodeZigZag32(int n) Encode a ZigZag-encoded 32-bit value.static longencodeZigZag64(long n) Encode a ZigZag-encoded 64-bit value.voidflush()Flushes the stream and forces any buffered bytes to be written.intGet the total number of bytes successfully written to this stream.static CodedOutputStreamnewInstance(byte[] flatArray) Create a newCodedOutputStreamthat writes directly to the given byte array.static CodedOutputStreamnewInstance(byte[] flatArray, int offset, int length) Create a newCodedOutputStreamthat writes directly to the given byte array slice.static CodedOutputStreamnewInstance(OutputStream output) Create a newCodedOutputStreamwrapping the givenOutputStream.static CodedOutputStreamnewInstance(OutputStream output, int bufferSize) Create a newCodedOutputStreamwrapping the givenOutputStreamwith a given buffer size.static CodedOutputStreamnewInstance(ByteBuffer byteBuffer) Create a newCodedOutputStreamthat writes to the given ByteBuffer.static CodedOutputStreamnewInstance(ByteBuffer byteBuffer, int bufferSize) Create a newCodedOutputStreamthat writes to the given ByteBuffer.intIf writing to a flat array, return the space left in the array.voidwriteBool(int fieldNumber, boolean value) Write aboolfield, including tag, to the stream.voidwriteBoolNoTag(boolean value) Write aboolfield to the stream.voidwriteByteArray(int fieldNumber, byte[] value) Write abytesfield, including tag, to the stream.voidwriteByteArray(int fieldNumber, byte[] value, int offset, int length) Write abytesfield, including tag, to the stream.voidwriteByteArrayNoTag(byte[] value) Write abytesfield to the stream.voidwriteByteArrayNoTag(byte[] value, int offset, int length) Write abytesfield to the stream.voidwriteByteBuffer(int fieldNumber, ByteBuffer value) Write abytesfield, including tag, to the stream.voidwriteByteBufferNoTag(ByteBuffer value) Write abytesfield to the stream.voidwriteBytes(int fieldNumber, ByteString value) Write abytesfield, including tag, to the stream.voidwriteBytesNoTag(ByteString value) Write abytesfield to the stream.voidwriteDouble(int fieldNumber, double value) Write adoublefield, including tag, to the stream.voidwriteDoubleNoTag(double value) Write adoublefield to the stream.voidwriteEnum(int fieldNumber, int value) Write an enum field, including tag, to the stream.voidwriteEnumNoTag(int value) Write an enum field to the stream.voidwriteFixed32(int fieldNumber, int value) Write afixed32field, including tag, to the stream.voidwriteFixed32NoTag(int value) Write afixed32field to the stream.voidwriteFixed64(int fieldNumber, long value) Write afixed64field, including tag, to the stream.voidwriteFixed64NoTag(long value) Write afixed64field to the stream.voidwriteFloat(int fieldNumber, float value) Write afloatfield, including tag, to the stream.voidwriteFloatNoTag(float value) Write afloatfield to the stream.voidwriteGroup(int fieldNumber, MessageLite value) Write agroupfield, including tag, to the stream.voidwriteGroupNoTag(MessageLite value) Write agroupfield to the stream.voidwriteInt32(int fieldNumber, int value) Write anint32field, including tag, to the stream.voidwriteInt32NoTag(int value) Write anint32field to the stream.voidwriteInt64(int fieldNumber, long value) Write anint64field, including tag, to the stream.voidwriteInt64NoTag(long value) Write anint64field to the stream.voidwriteMessage(int fieldNumber, MessageLite value) Write an embedded message field, including tag, to the stream.voidwriteMessageNoTag(MessageLite value) Write an embedded message field to the stream.voidwriteMessageSetExtension(int fieldNumber, MessageLite value) Write a MessageSet extension field to the stream.voidwriteRawByte(byte value) Write a single byte.voidwriteRawByte(int value) Write a single byte, represented by an integer value.voidwriteRawBytes(byte[] value) Write an array of bytes.voidwriteRawBytes(byte[] value, int offset, int length) Write part of an array of bytes.voidwriteRawBytes(ByteString value) Write a byte string.voidwriteRawBytes(ByteString value, int offset, int length) Write part of a byte string.voidwriteRawBytes(ByteBuffer value) Write a ByteBuffer.voidwriteRawLittleEndian32(int value) Write a little-endian 32-bit integer.voidwriteRawLittleEndian64(long value) Write a little-endian 64-bit integer.voidwriteRawMessageSetExtension(int fieldNumber, ByteString value) Write an unparsed MessageSet extension field to the stream.voidwriteRawVarint32(int value) Encode and write a varint.voidwriteRawVarint64(long value) Encode and write a varint.voidwriteSFixed32(int fieldNumber, int value) Write ansfixed32field, including tag, to the stream.voidwriteSFixed32NoTag(int value) Write ansfixed32field to the stream.voidwriteSFixed64(int fieldNumber, long value) Write ansfixed64field, including tag, to the stream.voidwriteSFixed64NoTag(long value) Write ansfixed64field to the stream.voidwriteSInt32(int fieldNumber, int value) Write ansint32field, including tag, to the stream.voidwriteSInt32NoTag(int value) Write ansint32field to the stream.voidwriteSInt64(int fieldNumber, long value) Write ansint64field, including tag, to the stream.voidwriteSInt64NoTag(long value) Write ansint64field to the stream.voidwriteString(int fieldNumber, String value) Write astringfield, including tag, to the stream.voidwriteStringNoTag(String value) Write astringfield to the stream.voidwriteTag(int fieldNumber, int wireType) Encode and write a tag.voidwriteUInt32(int fieldNumber, int value) Write auint32field, including tag, to the stream.voidwriteUInt32NoTag(int value) Write auint32field to the stream.voidwriteUInt64(int fieldNumber, long value) Write auint64field, including tag, to the stream.voidwriteUInt64NoTag(long value) Write auint64field to the stream.voidwriteUnknownGroup(int fieldNumber, MessageLite value) Deprecated.UnknownFieldSet now implements MessageLite, so you can just callwriteGroup(int, com.google.protobuf.MessageLite).voidDeprecated.UnknownFieldSet now implements MessageLite, so you can just callwriteGroupNoTag(com.google.protobuf.MessageLite).
-
Field Details
-
DEFAULT_BUFFER_SIZE
public static final int DEFAULT_BUFFER_SIZEThe buffer size used innewInstance(OutputStream).- See Also:
-
LITTLE_ENDIAN_32_SIZE
public static final int LITTLE_ENDIAN_32_SIZE- See Also:
-
LITTLE_ENDIAN_64_SIZE
public static final int LITTLE_ENDIAN_64_SIZE- See Also:
-
-
Method Details
-
newInstance
Create a newCodedOutputStreamwrapping the givenOutputStream. -
newInstance
Create a newCodedOutputStreamwrapping the givenOutputStreamwith a given buffer size. -
newInstance
Create a newCodedOutputStreamthat writes directly to the given byte array. If more bytes are written than fit in the array,CodedOutputStream.OutOfSpaceExceptionwill be thrown. Writing directly to a flat array is faster than writing to anOutputStream. See alsoByteString.newCodedBuilder(int). -
newInstance
Create a newCodedOutputStreamthat writes directly to the given byte array slice. If more bytes are written than fit in the slice,CodedOutputStream.OutOfSpaceExceptionwill be thrown. Writing directly to a flat array is faster than writing to anOutputStream. See alsoByteString.newCodedBuilder(int). -
newInstance
Create a newCodedOutputStreamthat writes to the given ByteBuffer. -
newInstance
Create a newCodedOutputStreamthat writes to the given ByteBuffer. -
writeDouble
Write adoublefield, including tag, to the stream.- Throws:
IOException
-
writeFloat
Write afloatfield, including tag, to the stream.- Throws:
IOException
-
writeUInt64
Write auint64field, including tag, to the stream.- Throws:
IOException
-
writeInt64
Write anint64field, including tag, to the stream.- Throws:
IOException
-
writeInt32
Write anint32field, including tag, to the stream.- Throws:
IOException
-
writeFixed64
Write afixed64field, including tag, to the stream.- Throws:
IOException
-
writeFixed32
Write afixed32field, including tag, to the stream.- Throws:
IOException
-
writeBool
Write aboolfield, including tag, to the stream.- Throws:
IOException
-
writeString
Write astringfield, including tag, to the stream.- Throws:
IOException
-
writeGroup
Write agroupfield, including tag, to the stream.- Throws:
IOException
-
writeUnknownGroup
Deprecated.UnknownFieldSet now implements MessageLite, so you can just callwriteGroup(int, com.google.protobuf.MessageLite).Write a group represented by anUnknownFieldSet.- Throws:
IOException
-
writeMessage
Write an embedded message field, including tag, to the stream.- Throws:
IOException
-
writeBytes
Write abytesfield, including tag, to the stream.- Throws:
IOException
-
writeByteArray
Write abytesfield, including tag, to the stream.- Throws:
IOException
-
writeByteArray
public void writeByteArray(int fieldNumber, byte[] value, int offset, int length) throws IOException Write abytesfield, including tag, to the stream.- Throws:
IOException
-
writeByteBuffer
Write abytesfield, including tag, to the stream. This method will write all content of the ByteBuffer regardless of the current position and limit (i.e., the number of bytes to be written is value.capacity(), not value.remaining()). Furthermore, this method doesn't alter the state of the passed-in ByteBuffer. Its position, limit, mark, etc. will remain unchanged. If you only want to write the remaining bytes of a ByteBuffer, you can callwriteByteBuffer(fieldNumber, byteBuffer.slice()).- Throws:
IOException
-
writeUInt32
Write auint32field, including tag, to the stream.- Throws:
IOException
-
writeEnum
Write an enum field, including tag, to the stream. Caller is responsible for converting the enum value to its numeric value.- Throws:
IOException
-
writeSFixed32
Write ansfixed32field, including tag, to the stream.- Throws:
IOException
-
writeSFixed64
Write ansfixed64field, including tag, to the stream.- Throws:
IOException
-
writeSInt32
Write ansint32field, including tag, to the stream.- Throws:
IOException
-
writeSInt64
Write ansint64field, including tag, to the stream.- Throws:
IOException
-
writeMessageSetExtension
Write a MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields.- Throws:
IOException
-
writeRawMessageSetExtension
Write an unparsed MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields.- Throws:
IOException
-
writeDoubleNoTag
Write adoublefield to the stream.- Throws:
IOException
-
writeFloatNoTag
Write afloatfield to the stream.- Throws:
IOException
-
writeUInt64NoTag
Write auint64field to the stream.- Throws:
IOException
-
writeInt64NoTag
Write anint64field to the stream.- Throws:
IOException
-
writeInt32NoTag
Write anint32field to the stream.- Throws:
IOException
-
writeFixed64NoTag
Write afixed64field to the stream.- Throws:
IOException
-
writeFixed32NoTag
Write afixed32field to the stream.- Throws:
IOException
-
writeBoolNoTag
Write aboolfield to the stream.- Throws:
IOException
-
writeStringNoTag
Write astringfield to the stream.- Throws:
IOException
-
writeGroupNoTag
Write agroupfield to the stream.- Throws:
IOException
-
writeUnknownGroupNoTag
Deprecated.UnknownFieldSet now implements MessageLite, so you can just callwriteGroupNoTag(com.google.protobuf.MessageLite).Write a group represented by anUnknownFieldSet.- Throws:
IOException
-
writeMessageNoTag
Write an embedded message field to the stream.- Throws:
IOException
-
writeBytesNoTag
Write abytesfield to the stream.- Throws:
IOException
-
writeByteArrayNoTag
Write abytesfield to the stream.- Throws:
IOException
-
writeByteArrayNoTag
Write abytesfield to the stream.- Throws:
IOException
-
writeByteBufferNoTag
Write abytesfield to the stream. This method will write all content of the ByteBuffer regardless of the current position and limit (i.e., the number of bytes to be written is value.capacity(), not value.remaining()). Furthermore, this method doesn't alter the state of the passed-in ByteBuffer. Its position, limit, mark, etc. will remain unchanged. If you only want to write the remaining bytes of a ByteBuffer, you can callwriteByteBufferNoTag(byteBuffer.slice()).- Throws:
IOException
-
writeUInt32NoTag
Write auint32field to the stream.- Throws:
IOException
-
writeEnumNoTag
Write an enum field to the stream. Caller is responsible for converting the enum value to its numeric value.- Throws:
IOException
-
writeSFixed32NoTag
Write ansfixed32field to the stream.- Throws:
IOException
-
writeSFixed64NoTag
Write ansfixed64field to the stream.- Throws:
IOException
-
writeSInt32NoTag
Write ansint32field to the stream.- Throws:
IOException
-
writeSInt64NoTag
Write ansint64field to the stream.- Throws:
IOException
-
computeDoubleSize
public static int computeDoubleSize(int fieldNumber, double value) Compute the number of bytes that would be needed to encode adoublefield, including tag. -
computeFloatSize
public static int computeFloatSize(int fieldNumber, float value) Compute the number of bytes that would be needed to encode afloatfield, including tag. -
computeUInt64Size
public static int computeUInt64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode auint64field, including tag. -
computeInt64Size
public static int computeInt64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode anint64field, including tag. -
computeInt32Size
public static int computeInt32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode anint32field, including tag. -
computeFixed64Size
public static int computeFixed64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode afixed64field, including tag. -
computeFixed32Size
public static int computeFixed32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode afixed32field, including tag. -
computeBoolSize
public static int computeBoolSize(int fieldNumber, boolean value) Compute the number of bytes that would be needed to encode aboolfield, including tag. -
computeStringSize
Compute the number of bytes that would be needed to encode astringfield, including tag. -
computeGroupSize
Compute the number of bytes that would be needed to encode agroupfield, including tag. -
computeUnknownGroupSize
Deprecated.UnknownFieldSet now implements MessageLite, so you can just callcomputeGroupSize(int, com.google.protobuf.MessageLite).Compute the number of bytes that would be needed to encode agroupfield represented by anUnknownFieldSet, including tag. -
computeMessageSize
Compute the number of bytes that would be needed to encode an embedded message field, including tag. -
computeBytesSize
Compute the number of bytes that would be needed to encode abytesfield, including tag. -
computeByteArraySize
public static int computeByteArraySize(int fieldNumber, byte[] value) Compute the number of bytes that would be needed to encode abytesfield, including tag. -
computeByteBufferSize
Compute the number of bytes that would be needed to encode abytesfield, including tag. -
computeLazyFieldSize
Compute the number of bytes that would be needed to encode an embedded message in lazy field, including tag. -
computeUInt32Size
public static int computeUInt32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode auint32field, including tag. -
computeEnumSize
public static int computeEnumSize(int fieldNumber, int value) Compute the number of bytes that would be needed to encode an enum field, including tag. Caller is responsible for converting the enum value to its numeric value. -
computeSFixed32Size
public static int computeSFixed32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode ansfixed32field, including tag. -
computeSFixed64Size
public static int computeSFixed64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode ansfixed64field, including tag. -
computeSInt32Size
public static int computeSInt32Size(int fieldNumber, int value) Compute the number of bytes that would be needed to encode ansint32field, including tag. -
computeSInt64Size
public static int computeSInt64Size(int fieldNumber, long value) Compute the number of bytes that would be needed to encode ansint64field, including tag. -
computeMessageSetExtensionSize
Compute the number of bytes that would be needed to encode a MessageSet extension to the stream. For historical reasons, the wire format differs from normal fields. -
computeRawMessageSetExtensionSize
Compute the number of bytes that would be needed to encode an unparsed MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields. -
computeLazyFieldMessageSetExtensionSize
Compute the number of bytes that would be needed to encode an lazily parsed MessageSet extension field to the stream. For historical reasons, the wire format differs from normal fields. -
computeDoubleSizeNoTag
public static int computeDoubleSizeNoTag(double value) Compute the number of bytes that would be needed to encode adoublefield, including tag. -
computeFloatSizeNoTag
public static int computeFloatSizeNoTag(float value) Compute the number of bytes that would be needed to encode afloatfield, including tag. -
computeUInt64SizeNoTag
public static int computeUInt64SizeNoTag(long value) Compute the number of bytes that would be needed to encode auint64field, including tag. -
computeInt64SizeNoTag
public static int computeInt64SizeNoTag(long value) Compute the number of bytes that would be needed to encode anint64field, including tag. -
computeInt32SizeNoTag
public static int computeInt32SizeNoTag(int value) Compute the number of bytes that would be needed to encode anint32field, including tag. -
computeFixed64SizeNoTag
public static int computeFixed64SizeNoTag(long value) Compute the number of bytes that would be needed to encode afixed64field. -
computeFixed32SizeNoTag
public static int computeFixed32SizeNoTag(int value) Compute the number of bytes that would be needed to encode afixed32field. -
computeBoolSizeNoTag
public static int computeBoolSizeNoTag(boolean value) Compute the number of bytes that would be needed to encode aboolfield. -
computeStringSizeNoTag
Compute the number of bytes that would be needed to encode astringfield. -
computeGroupSizeNoTag
Compute the number of bytes that would be needed to encode agroupfield. -
computeUnknownGroupSizeNoTag
Deprecated.UnknownFieldSet now implements MessageLite, so you can just callcomputeUnknownGroupSizeNoTag(com.google.protobuf.MessageLite).Compute the number of bytes that would be needed to encode agroupfield represented by anUnknownFieldSet, including tag. -
computeMessageSizeNoTag
Compute the number of bytes that would be needed to encode an embedded message field. -
computeLazyFieldSizeNoTag
Compute the number of bytes that would be needed to encode an embedded message stored in lazy field. -
computeBytesSizeNoTag
Compute the number of bytes that would be needed to encode abytesfield. -
computeByteArraySizeNoTag
public static int computeByteArraySizeNoTag(byte[] value) Compute the number of bytes that would be needed to encode abytesfield. -
computeByteBufferSizeNoTag
Compute the number of bytes that would be needed to encode abytesfield. -
computeUInt32SizeNoTag
public static int computeUInt32SizeNoTag(int value) Compute the number of bytes that would be needed to encode auint32field. -
computeEnumSizeNoTag
public static int computeEnumSizeNoTag(int value) Compute the number of bytes that would be needed to encode an enum field. Caller is responsible for converting the enum value to its numeric value. -
computeSFixed32SizeNoTag
public static int computeSFixed32SizeNoTag(int value) Compute the number of bytes that would be needed to encode ansfixed32field. -
computeSFixed64SizeNoTag
public static int computeSFixed64SizeNoTag(long value) Compute the number of bytes that would be needed to encode ansfixed64field. -
computeSInt32SizeNoTag
public static int computeSInt32SizeNoTag(int value) Compute the number of bytes that would be needed to encode ansint32field. -
computeSInt64SizeNoTag
public static int computeSInt64SizeNoTag(long value) Compute the number of bytes that would be needed to encode ansint64field. -
flush
Flushes the stream and forces any buffered bytes to be written. This does not flush the underlying OutputStream.- Throws:
IOException
-
spaceLeft
public int spaceLeft()If writing to a flat array, return the space left in the array. Otherwise, throwsUnsupportedOperationException. -
checkNoSpaceLeft
public void checkNoSpaceLeft()Verifies thatspaceLeft()returns zero. It's common to create a byte array that is exactly big enough to hold a message, then write to it with aCodedOutputStream. CallingcheckNoSpaceLeft()after writing verifies that the message was actually as big as expected, which can help catch bugs. -
getTotalBytesWritten
public int getTotalBytesWritten()Get the total number of bytes successfully written to this stream. The returned value is not guaranteed to be accurate if exceptions have been found in the middle of writing. -
writeRawByte
Write a single byte.- Throws:
IOException
-
writeRawByte
Write a single byte, represented by an integer value.- Throws:
IOException
-
writeRawBytes
Write a byte string.- Throws:
IOException
-
writeRawBytes
Write an array of bytes.- Throws:
IOException
-
writeRawBytes
Write a ByteBuffer. This method will write all content of the ByteBuffer regardless of the current position and limit (i.e., the number of bytes to be written is value.capacity(), not value.remaining()). Furthermore, this method doesn't alter the state of the passed-in ByteBuffer. Its position, limit, mark, etc. will remain unchanged. If you only want to write the remaining bytes of a ByteBuffer, you can callwriteRawBytes(byteBuffer.slice()).- Throws:
IOException
-
writeRawBytes
Write part of an array of bytes.- Throws:
IOException
-
writeRawBytes
Write part of a byte string.- Throws:
IOException
-
writeTag
Encode and write a tag.- Throws:
IOException
-
computeTagSize
public static int computeTagSize(int fieldNumber) Compute the number of bytes that would be needed to encode a tag. -
writeRawVarint32
Encode and write a varint.valueis treated as unsigned, so it won't be sign-extended if negative.- Throws:
IOException
-
computeRawVarint32Size
public static int computeRawVarint32Size(int value) Compute the number of bytes that would be needed to encode a varint.valueis treated as unsigned, so it won't be sign-extended if negative. -
writeRawVarint64
Encode and write a varint.- Throws:
IOException
-
computeRawVarint64Size
public static int computeRawVarint64Size(long value) Compute the number of bytes that would be needed to encode a varint. -
writeRawLittleEndian32
Write a little-endian 32-bit integer.- Throws:
IOException
-
writeRawLittleEndian64
Write a little-endian 64-bit integer.- Throws:
IOException
-
encodeZigZag32
public static int encodeZigZag32(int n) Encode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers into values that can be efficiently encoded with varint. (Otherwise, negative values must be sign-extended to 64 bits to be varint encoded, thus always taking 10 bytes on the wire.)- Parameters:
n- A signed 32-bit integer.- Returns:
- An unsigned 32-bit integer, stored in a signed int because Java has no explicit unsigned support.
-
encodeZigZag64
public static long encodeZigZag64(long n) Encode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers into values that can be efficiently encoded with varint. (Otherwise, negative values must be sign-extended to 64 bits to be varint encoded, thus always taking 10 bytes on the wire.)- Parameters:
n- A signed 64-bit integer.- Returns:
- An unsigned 64-bit integer, stored in a signed int because Java has no explicit unsigned support.
-
computeGroupSize(int, com.google.protobuf.MessageLite).