A helper class for parsing and iterating over fields in a protobuf message.
Message provides stream-oriented, re-entrant parsing of protobuf fields without requiring code generation. All parser objects created from Message hold a reference to the underlying reader and work independently without blocking each other.
- Note
- All parser objects generated by
Message internally reference the same reader. Therefore, the reader must maintain a valid lifespan throughout the operations. All method calls and for-range iterations are re-entrant and safe to interleave.
String str = message.AsString(1);
Bytes bytes = message.AsBytes(2);
Uint32 integer = message.AsUint32(3);
for (
String element : rep_str) {
if (!element.ok()) {
}
}
StringToBytesMap str_to_bytes = message.AsStringToBytesMap(5);
Bytes bytes_for_key = str_to_bytes["key"];
for (StringToBytesMapEntry entry : str_to_bytes) {
if (!entry.ok()) {
}
String key = entry.Key();
Bytes value = entry.Value();
}
Message nested = message.AsMessage(6);
String nested_str = nested.AsString(1);
Bytes nested_bytes = nested.AsBytes(2);
for (Message::Field field : message) {
if (!field.ok()) {
}
if (field.field_number() == 1) {
String s = field.As<String>();
} else if (field.field_number() == 2) {
Bytes b = field.As<Bytes>();
} else if (field.field_number() == 6) {
Message m = field.As<Message>();
}
}
Definition: message.h:131
Definition: message.h:261
Definition: message.h:516
Definition: message.h:156
- Deprecated:
- All APIs from
message.h are deprecated.