Class WrappedMessage
1. The Protocol Buffers encoding format does not contain any description of the message type that follows next in the
data stream, unlike for example the Java serialization format which provides information about classes that are saved
in a Serialization stream in the form of class descriptors which contain the fully qualified name of the class being
serialized. The Protocol Buffers client is expected to know what message type he is expecting to read from the
stream. This knowledge exists in most cases, statically, so this encoding scheme saves a lot of space by not
including redundant type descriptors in the stream by default. For all other use cases where data types are dynamic
you are on your own, but WrappedMessage
is here to help you.
2. The Protocol Buffer wire format is also not self-delimiting, so when reading a message we see just a stream of
fields and we are not able to determine when the fields of the current message end and the next message starts. The
protocol assumes that the whole contents of the stream is to be interpreted as a single message. If that's not the
case, then the user must provide his own way of delimiting messages either by using message start/stop markers or by
prefixing each message with its size or any other equivalent mechanism. WrappedMessage
relies on an
int32
size prefix.
So wherever you cannot statically decide what message type you'll be using and need to defer this until runtime, just
use WrappedMessage
.
- Since:
- 1.0
- Author:
- [email protected]
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
static final String
Full path of the message-wrapping.proto resource file in classpath.static final int
The type id of WrappedMessage itself.static final String
The fully qualified Protobuf type name of this message.static final int
A wrapped bool.static final int
A wrapped byte (marshalled as int32).static final int
A wrapped bytes.static final int
A wrapped char (marshalled as int32).static final int
static final int
The (optional) number of repeated elements.static final int
static final int
static final int
A wrapped java.util.Date (marshalled as int64).static final int
Deprecated.static final int
Deprecated.UseWRAPPED_TYPE_ID
instead.static final int
Deprecated.UseWRAPPED_TYPE_ID
instead.static final int
A wrapped double.static final int
A flag indicating and empty/null message.static final int
The enum value.static final int
A wrapped fixed32.static final int
A wrapped fixed64.static final int
A wrapped float.static final int
The nanoseconds of the java.time.Instant.static final int
A wrapped java.time.Instant (marshalled as int64 (seconds) and an int32 (nanos)).static final int
A wrapped int32.static final int
A wrapped int64.static final int
A byte array containing the encoded message.static final int
A wrapped sfixed32.static final int
A wrapped sfixed64.static final int
A wrapped short (marshalled as int32).static final int
A wrapped sint32.static final int
A wrapped sint64.static final int
A wrapped string.static final int
The (optional) numeric type id of the wrapped message or enum.static final int
The name of the fully qualified message or enum type name, when the wrapped object is a message or enum.static final int
A wrapped uint32.static final int
A wrapped uint64. -
Constructor Summary
-
Method Summary
-
Field Details
-
PROTOBUF_TYPE_NAME
The fully qualified Protobuf type name of this message. This type is defined in message-wrapping.proto.- See Also:
-
PROTOBUF_TYPE_ID
public static final int PROTOBUF_TYPE_IDThe type id of WrappedMessage itself.- See Also:
-
PROTO_FILE
Full path of the message-wrapping.proto resource file in classpath.- See Also:
-
WRAPPED_DOUBLE
public static final int WRAPPED_DOUBLEA wrapped double.- See Also:
-
WRAPPED_FLOAT
public static final int WRAPPED_FLOATA wrapped float.- See Also:
-
WRAPPED_INT64
public static final int WRAPPED_INT64A wrapped int64.- See Also:
-
WRAPPED_UINT64
public static final int WRAPPED_UINT64A wrapped uint64.- See Also:
-
WRAPPED_INT32
public static final int WRAPPED_INT32A wrapped int32.- See Also:
-
WRAPPED_FIXED64
public static final int WRAPPED_FIXED64A wrapped fixed64.- See Also:
-
WRAPPED_FIXED32
public static final int WRAPPED_FIXED32A wrapped fixed32.- See Also:
-
WRAPPED_BOOL
public static final int WRAPPED_BOOLA wrapped bool.- See Also:
-
WRAPPED_STRING
public static final int WRAPPED_STRINGA wrapped string.- See Also:
-
WRAPPED_CHAR
public static final int WRAPPED_CHARA wrapped char (marshalled as int32).- See Also:
-
WRAPPED_SHORT
public static final int WRAPPED_SHORTA wrapped short (marshalled as int32).- See Also:
-
WRAPPED_BYTE
public static final int WRAPPED_BYTEA wrapped byte (marshalled as int32).- See Also:
-
WRAPPED_DATE_MILLIS
public static final int WRAPPED_DATE_MILLISA wrapped java.util.Date (marshalled as int64).- See Also:
-
WRAPPED_INSTANT_SECONDS
public static final int WRAPPED_INSTANT_SECONDSA wrapped java.time.Instant (marshalled as int64 (seconds) and an int32 (nanos)).- See Also:
-
WRAPPED_INSTANT_NANOS
public static final int WRAPPED_INSTANT_NANOSThe nanoseconds of the java.time.Instant.- See Also:
-
WRAPPED_BYTES
public static final int WRAPPED_BYTESA wrapped bytes.- See Also:
-
WRAPPED_UINT32
public static final int WRAPPED_UINT32A wrapped uint32.- See Also:
-
WRAPPED_SFIXED32
public static final int WRAPPED_SFIXED32A wrapped sfixed32.- See Also:
-
WRAPPED_SFIXED64
public static final int WRAPPED_SFIXED64A wrapped sfixed64.- See Also:
-
WRAPPED_SINT32
public static final int WRAPPED_SINT32A wrapped sint32.- See Also:
-
WRAPPED_SINT64
public static final int WRAPPED_SINT64A wrapped sint64.- See Also:
-
WRAPPED_TYPE_NAME
public static final int WRAPPED_TYPE_NAMEThe name of the fully qualified message or enum type name, when the wrapped object is a message or enum.- See Also:
-
WRAPPED_DESCRIPTOR_FULL_NAME
Deprecated.UseWRAPPED_TYPE_NAME
instead. This will be removed in ver. 5.- See Also:
-
WRAPPED_MESSAGE
public static final int WRAPPED_MESSAGEA byte array containing the encoded message.- See Also:
-
WRAPPED_ENUM
public static final int WRAPPED_ENUMThe enum value.- See Also:
-
WRAPPED_TYPE_ID
public static final int WRAPPED_TYPE_IDThe (optional) numeric type id of the wrapped message or enum. This is an alternative toWRAPPED_TYPE_NAME
.- See Also:
-
WRAPPED_DESCRIPTOR_TYPE_ID
Deprecated.UseWRAPPED_TYPE_ID
instead. This will be removed in ver. 5.- See Also:
-
WRAPPED_DESCRIPTOR_ID
Deprecated.UseWRAPPED_TYPE_ID
instead. This will be removed in ver. 5.- See Also:
-
WRAPPED_EMPTY
public static final int WRAPPED_EMPTYA flag indicating and empty/null message.- See Also:
-
WRAPPED_CONTAINER_SIZE
public static final int WRAPPED_CONTAINER_SIZEThe (optional) number of repeated elements.- See Also:
-
WRAPPED_CONTAINER_TYPE_NAME
public static final int WRAPPED_CONTAINER_TYPE_NAME- See Also:
-
WRAPPED_CONTAINER_TYPE_ID
public static final int WRAPPED_CONTAINER_TYPE_ID- See Also:
-
WRAPPED_CONTAINER_MESSAGE
public static final int WRAPPED_CONTAINER_MESSAGE- See Also:
-
CONTAINER_SIZE_CONTEXT_PARAM
- See Also:
-
-
Constructor Details
-
WrappedMessage
-
-
Method Details
WRAPPED_TYPE_NAME
instead.