Go to the documentation of this file.
40 #ifndef GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_H__
41 #define GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_H__
55 #define GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
73 #include <google/protobuf/port_def.inc>
144 CPPTYPE_MESSAGE = 10,
154 return kWireTypeForFieldType[
type];
158 static const int kTagTypeBits = 3;
160 static const uint32 kTagTypeMask = (1 << kTagTypeBits) - 1;
169 static int GetTagFieldNumber(
uint32 tag);
173 static inline size_t TagSize(
int field_number,
202 #define GOOGLE_PROTOBUF_WIRE_FORMAT_MAKE_TAG(FIELD_NUMBER, TYPE) \
203 static_cast<uint32>((static_cast<uint32>(FIELD_NUMBER) << 3) | (TYPE))
212 static const int kMessageSetItemNumber = 1;
213 static const int kMessageSetTypeIdNumber = 2;
214 static const int kMessageSetMessageNumber = 3;
255 template <
typename CType, enum FieldType DeclaredType>
262 template <
typename CType, enum FieldType DeclaredType>
263 PROTOBUF_ALWAYS_INLINE
static bool ReadRepeatedPrimitive(
269 template <
typename CType, enum FieldType DeclaredType>
270 static bool ReadRepeatedPrimitiveNoInline(
int tag_size,
uint32 tag,
279 template <
typename CType, enum FieldType DeclaredType>
280 PROTOBUF_ALWAYS_INLINE
static const uint8* ReadPrimitiveFromArray(
286 template <
typename CType, enum FieldType DeclaredType>
287 PROTOBUF_ALWAYS_INLINE
static bool ReadPackedPrimitive(
292 template <
typename CType, enum FieldType DeclaredType>
299 bool (*is_valid)(
int),
304 static bool ReadPackedEnumPreserveUnknowns(
328 static bool VerifyUtf8String(
const char*
data,
int size, Operation op,
329 const char* field_name);
331 template <
typename MessageType>
335 template <
typename MessageType>
339 template <
typename MessageType>
341 MessageType*
value) {
348 PROTOBUF_ALWAYS_INLINE
static void WriteTag(
int field_number, WireType
type,
352 PROTOBUF_ALWAYS_INLINE
static void WriteInt32NoTag(
354 PROTOBUF_ALWAYS_INLINE
static void WriteInt64NoTag(
356 PROTOBUF_ALWAYS_INLINE
static void WriteUInt32NoTag(
358 PROTOBUF_ALWAYS_INLINE
static void WriteUInt64NoTag(
360 PROTOBUF_ALWAYS_INLINE
static void WriteSInt32NoTag(
362 PROTOBUF_ALWAYS_INLINE
static void WriteSInt64NoTag(
364 PROTOBUF_ALWAYS_INLINE
static void WriteFixed32NoTag(
366 PROTOBUF_ALWAYS_INLINE
static void WriteFixed64NoTag(
368 PROTOBUF_ALWAYS_INLINE
static void WriteSFixed32NoTag(
370 PROTOBUF_ALWAYS_INLINE
static void WriteSFixed64NoTag(
372 PROTOBUF_ALWAYS_INLINE
static void WriteFloatNoTag(
374 PROTOBUF_ALWAYS_INLINE
static void WriteDoubleNoTag(
376 PROTOBUF_ALWAYS_INLINE
static void WriteBoolNoTag(
378 PROTOBUF_ALWAYS_INLINE
static void WriteEnumNoTag(
382 static void WriteFloatArray(
const float*
a,
int n,
384 static void WriteDoubleArray(
const double*
a,
int n,
386 static void WriteFixed32Array(
const uint32*
a,
int n,
388 static void WriteFixed64Array(
const uint64*
a,
int n,
390 static void WriteSFixed32Array(
const int32*
a,
int n,
392 static void WriteSFixed64Array(
const int64*
a,
int n,
394 static void WriteBoolArray(
const bool*
a,
int n,
398 static void WriteInt32(
int field_number,
int32 value,
400 static void WriteInt64(
int field_number,
int64 value,
402 static void WriteUInt32(
int field_number,
uint32 value,
404 static void WriteUInt64(
int field_number,
uint64 value,
406 static void WriteSInt32(
int field_number,
int32 value,
408 static void WriteSInt64(
int field_number,
int64 value,
410 static void WriteFixed32(
int field_number,
uint32 value,
412 static void WriteFixed64(
int field_number,
uint64 value,
414 static void WriteSFixed32(
int field_number,
int32 value,
416 static void WriteSFixed64(
int field_number,
int64 value,
418 static void WriteFloat(
int field_number,
float value,
420 static void WriteDouble(
int field_number,
double value,
422 static void WriteBool(
int field_number,
bool value,
424 static void WriteEnum(
int field_number,
int value,
431 static void WriteStringMaybeAliased(
int field_number,
434 static void WriteBytesMaybeAliased(
int field_number,
const std::string&
value,
443 static void WriteGroupMaybeToArray(
int field_number,
const MessageLite&
value,
445 static void WriteMessageMaybeToArray(
int field_number,
452 template <
typename MessageType>
453 static inline void WriteGroupNoVirtual(
int field_number,
454 const MessageType&
value,
456 template <
typename MessageType>
457 static inline void WriteMessageNoVirtual(
int field_number,
458 const MessageType&
value,
462 PROTOBUF_ALWAYS_INLINE
static uint8* WriteTagToArray(
int field_number,
467 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt32NoTagToArray(
int32 value,
469 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt64NoTagToArray(
int64 value,
475 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt32NoTagToArray(
int32 value,
477 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt64NoTagToArray(
int64 value,
483 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed32NoTagToArray(
int32 value,
485 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed64NoTagToArray(
int64 value,
487 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFloatNoTagToArray(
float value,
489 PROTOBUF_ALWAYS_INLINE
static uint8* WriteDoubleNoTagToArray(
double value,
491 PROTOBUF_ALWAYS_INLINE
static uint8* WriteBoolNoTagToArray(
bool value,
493 PROTOBUF_ALWAYS_INLINE
static uint8* WriteEnumNoTagToArray(
int value,
497 template <
typename T>
498 PROTOBUF_ALWAYS_INLINE
static uint8* WritePrimitiveNoTagToArray(
501 template <
typename T>
502 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixedNoTagToArray(
506 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt32NoTagToArray(
508 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt64NoTagToArray(
510 PROTOBUF_ALWAYS_INLINE
static uint8* WriteUInt32NoTagToArray(
512 PROTOBUF_ALWAYS_INLINE
static uint8* WriteUInt64NoTagToArray(
514 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt32NoTagToArray(
516 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt64NoTagToArray(
518 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixed32NoTagToArray(
520 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixed64NoTagToArray(
522 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed32NoTagToArray(
524 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed64NoTagToArray(
526 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFloatNoTagToArray(
528 PROTOBUF_ALWAYS_INLINE
static uint8* WriteDoubleNoTagToArray(
530 PROTOBUF_ALWAYS_INLINE
static uint8* WriteBoolNoTagToArray(
532 PROTOBUF_ALWAYS_INLINE
static uint8* WriteEnumNoTagToArray(
536 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt32ToArray(
int field_number,
539 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt64ToArray(
int field_number,
542 PROTOBUF_ALWAYS_INLINE
static uint8* WriteUInt32ToArray(
int field_number,
545 PROTOBUF_ALWAYS_INLINE
static uint8* WriteUInt64ToArray(
int field_number,
548 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt32ToArray(
int field_number,
551 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt64ToArray(
int field_number,
554 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixed32ToArray(
int field_number,
557 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixed64ToArray(
int field_number,
560 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed32ToArray(
int field_number,
563 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed64ToArray(
int field_number,
566 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFloatToArray(
int field_number,
569 PROTOBUF_ALWAYS_INLINE
static uint8* WriteDoubleToArray(
int field_number,
572 PROTOBUF_ALWAYS_INLINE
static uint8* WriteBoolToArray(
int field_number,
575 PROTOBUF_ALWAYS_INLINE
static uint8* WriteEnumToArray(
int field_number,
579 template <
typename T>
580 PROTOBUF_ALWAYS_INLINE
static uint8* WritePrimitiveToArray(
584 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt32ToArray(
586 PROTOBUF_ALWAYS_INLINE
static uint8* WriteInt64ToArray(
588 PROTOBUF_ALWAYS_INLINE
static uint8* WriteUInt32ToArray(
590 PROTOBUF_ALWAYS_INLINE
static uint8* WriteUInt64ToArray(
592 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt32ToArray(
594 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSInt64ToArray(
596 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixed32ToArray(
598 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFixed64ToArray(
600 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed32ToArray(
602 PROTOBUF_ALWAYS_INLINE
static uint8* WriteSFixed64ToArray(
604 PROTOBUF_ALWAYS_INLINE
static uint8* WriteFloatToArray(
606 PROTOBUF_ALWAYS_INLINE
static uint8* WriteDoubleToArray(
608 PROTOBUF_ALWAYS_INLINE
static uint8* WriteBoolToArray(
610 PROTOBUF_ALWAYS_INLINE
static uint8* WriteEnumToArray(
613 PROTOBUF_ALWAYS_INLINE
static uint8* WriteStringToArray(
615 PROTOBUF_ALWAYS_INLINE
static uint8* WriteBytesToArray(
623 template <
typename MessageType>
624 PROTOBUF_ALWAYS_INLINE
static uint8* InternalWriteGroupToArray(
626 template <
typename MessageType>
627 PROTOBUF_ALWAYS_INLINE
static uint8* InternalWriteMessageToArray(
633 template <
typename MessageType>
634 PROTOBUF_ALWAYS_INLINE
static uint8* InternalWriteGroupNoVirtualToArray(
636 template <
typename MessageType>
637 PROTOBUF_ALWAYS_INLINE
static uint8* InternalWriteMessageNoVirtualToArray(
644 return InternalWriteGroupToArray(field_number,
value,
target);
648 return InternalWriteMessageToArray(field_number,
value,
target);
661 static inline size_t EnumSize(
int value);
672 static const size_t kFixed32Size = 4;
673 static const size_t kFixed64Size = 8;
674 static const size_t kSFixed32Size = 4;
675 static const size_t kSFixed64Size = 8;
676 static const size_t kFloatSize = 4;
677 static const size_t kDoubleSize = 8;
678 static const size_t kBoolSize = 1;
683 template <
typename MessageType>
684 static inline size_t GroupSize(
const MessageType&
value);
685 template <
typename MessageType>
686 static inline size_t MessageSize(
const MessageType&
value);
691 template <
typename MessageType>
692 static inline size_t GroupSizeNoVirtual(
const MessageType&
value);
693 template <
typename MessageType>
694 static inline size_t MessageSizeNoVirtual(
const MessageType&
value);
698 static inline size_t LengthDelimitedSize(
size_t length);
704 template <
typename CType, enum FieldType DeclaredType>
705 PROTOBUF_ALWAYS_INLINE
static bool ReadRepeatedFixedSizePrimitive(
710 template <
typename CType, enum FieldType DeclaredType>
711 PROTOBUF_ALWAYS_INLINE
static bool ReadPackedFixedSizePrimitive(
714 static const CppType kFieldTypeToCppTypeMap[];
741 virtual void SkipUnknownEnum(
int field_number,
int value);
749 : unknown_fields_(unknown_fields) {}
755 void SkipUnknownEnum(
int field_number,
int value)
override;
856 return (
static_cast<uint32>(
n) << 1) ^
static_cast<uint32>(
n >> 31);
861 return static_cast<int32>((
n >> 1) ^ (~(
n & 1) + 1));
867 return (
static_cast<uint64>(
n) << 1) ^
static_cast<uint64>(
n >> 63);
872 return static_cast<int64>((
n >> 1) ^ (~(
n & 1) + 1));
890 output->WriteString(unknown_fields);
895 return unknown_fields.size();
901 inline bool WireFormatLite::ReadPrimitive<int32, WireFormatLite::TYPE_INT32>(
904 if (!
input->ReadVarint32(&temp))
return false;
909 inline bool WireFormatLite::ReadPrimitive<int64, WireFormatLite::TYPE_INT64>(
912 if (!
input->ReadVarint64(&temp))
return false;
917 inline bool WireFormatLite::ReadPrimitive<uint32, WireFormatLite::TYPE_UINT32>(
922 inline bool WireFormatLite::ReadPrimitive<uint64, WireFormatLite::TYPE_UINT64>(
927 inline bool WireFormatLite::ReadPrimitive<int32, WireFormatLite::TYPE_SINT32>(
930 if (!
input->ReadVarint32(&temp))
return false;
935 inline bool WireFormatLite::ReadPrimitive<int64, WireFormatLite::TYPE_SINT64>(
938 if (!
input->ReadVarint64(&temp))
return false;
943 inline bool WireFormatLite::ReadPrimitive<uint32, WireFormatLite::TYPE_FIXED32>(
948 inline bool WireFormatLite::ReadPrimitive<uint64, WireFormatLite::TYPE_FIXED64>(
953 inline bool WireFormatLite::ReadPrimitive<int32, WireFormatLite::TYPE_SFIXED32>(
956 if (!
input->ReadLittleEndian32(&temp))
return false;
961 inline bool WireFormatLite::ReadPrimitive<int64, WireFormatLite::TYPE_SFIXED64>(
964 if (!
input->ReadLittleEndian64(&temp))
return false;
969 inline bool WireFormatLite::ReadPrimitive<float, WireFormatLite::TYPE_FLOAT>(
972 if (!
input->ReadLittleEndian32(&temp))
return false;
973 *
value = DecodeFloat(temp);
977 inline bool WireFormatLite::ReadPrimitive<double, WireFormatLite::TYPE_DOUBLE>(
980 if (!
input->ReadLittleEndian64(&temp))
return false;
981 *
value = DecodeDouble(temp);
985 inline bool WireFormatLite::ReadPrimitive<bool, WireFormatLite::TYPE_BOOL>(
988 if (!
input->ReadVarint64(&temp))
return false;
993 inline bool WireFormatLite::ReadPrimitive<int, WireFormatLite::TYPE_ENUM>(
996 if (!
input->ReadVarint32(&temp))
return false;
997 *
value =
static_cast<int>(temp);
1003 WireFormatLite::ReadPrimitiveFromArray<uint32, WireFormatLite::TYPE_FIXED32>(
1009 WireFormatLite::ReadPrimitiveFromArray<uint64, WireFormatLite::TYPE_FIXED64>(
1015 WireFormatLite::ReadPrimitiveFromArray<int32, WireFormatLite::TYPE_SFIXED32>(
1024 WireFormatLite::ReadPrimitiveFromArray<int64, WireFormatLite::TYPE_SFIXED64>(
1033 WireFormatLite::ReadPrimitiveFromArray<float, WireFormatLite::TYPE_FLOAT>(
1037 *
value = DecodeFloat(temp);
1042 WireFormatLite::ReadPrimitiveFromArray<double, WireFormatLite::TYPE_DOUBLE>(
1046 *
value = DecodeDouble(temp);
1050 template <
typename CType, enum WireFormatLite::FieldType DeclaredType>
1055 if (!ReadPrimitive<CType, DeclaredType>(
input, &
value))
return false;
1057 int elements_already_reserved =
values->Capacity() -
values->size();
1058 while (elements_already_reserved > 0 &&
input->ExpectTag(tag)) {
1059 if (!ReadPrimitive<CType, DeclaredType>(
input, &
value))
return false;
1061 elements_already_reserved--;
1066 template <
typename CType, enum WireFormatLite::FieldType DeclaredType>
1072 if (!ReadPrimitive<CType, DeclaredType>(
input, &
value))
return false;
1084 const void* void_pointer;
1086 input->GetDirectBufferPointerInline(&void_pointer, &
size);
1090 const int per_value_size = tag_size +
static_cast<int>(
sizeof(
value));
1093 int elements_available =
1096 while (num_read < elements_available &&
1103 const int read_bytes = num_read * per_value_size;
1104 if (read_bytes > 0) {
1105 input->Skip(read_bytes);
1113 #define READ_REPEATED_FIXED_SIZE_PRIMITIVE(CPPTYPE, DECLARED_TYPE) \
1115 inline bool WireFormatLite::ReadRepeatedPrimitive< \
1116 CPPTYPE, WireFormatLite::DECLARED_TYPE>( \
1117 int tag_size, uint32 tag, io::CodedInputStream* input, \
1118 RepeatedField<CPPTYPE>* values) { \
1119 return ReadRepeatedFixedSizePrimitive<CPPTYPE, \
1120 WireFormatLite::DECLARED_TYPE>( \
1121 tag_size, tag, input, values); \
1131 #undef READ_REPEATED_FIXED_SIZE_PRIMITIVE
1133 template <
typename CType, enum WireFormatLite::FieldType DeclaredType>
1137 return ReadRepeatedPrimitive<CType, DeclaredType>(tag_size, tag,
input,
1141 template <
typename CType, enum WireFormatLite::FieldType DeclaredType>
1145 if (!
input->ReadVarintSizeAsInt(&
length))
return false;
1147 while (
input->BytesUntilLimit() > 0) {
1149 if (!ReadPrimitive<CType, DeclaredType>(
input, &
value))
return false;
1152 input->PopLimit(limit);
1156 template <
typename CType, enum WireFormatLite::FieldType DeclaredType>
1160 if (!
input->ReadVarintSizeAsInt(&
length))
return false;
1161 const int old_entries =
values->size();
1162 const int new_entries =
length /
static_cast<int>(
sizeof(CType));
1163 const int new_bytes = new_entries *
static_cast<int>(
sizeof(CType));
1164 if (new_bytes !=
length)
return false;
1177 int64 bytes_limit =
input->BytesUntilTotalBytesLimit();
1178 if (bytes_limit == -1) {
1179 bytes_limit =
input->BytesUntilLimit();
1183 (std::min)(bytes_limit,
static_cast<int64>(
input->BytesUntilLimit()));
1185 if (bytes_limit >= new_bytes) {
1187 #if defined(PROTOBUF_LITTLE_ENDIAN)
1188 values->Resize(old_entries + new_entries, 0);
1190 void*
dest =
reinterpret_cast<void*
>(
values->mutable_data() + old_entries);
1192 values->Truncate(old_entries);
1196 values->Reserve(old_entries + new_entries);
1198 for (
int i = 0;
i < new_entries; ++
i) {
1199 if (!ReadPrimitive<CType, DeclaredType>(
input, &
value))
return false;
1208 for (
int i = 0;
i < new_entries; ++
i) {
1209 if (!ReadPrimitive<CType, DeclaredType>(
input, &
value))
return false;
1218 #define READ_REPEATED_PACKED_FIXED_SIZE_PRIMITIVE(CPPTYPE, DECLARED_TYPE) \
1221 WireFormatLite::ReadPackedPrimitive<CPPTYPE, WireFormatLite::DECLARED_TYPE>( \
1222 io::CodedInputStream * input, RepeatedField<CPPTYPE> * values) { \
1223 return ReadPackedFixedSizePrimitive<CPPTYPE, \
1224 WireFormatLite::DECLARED_TYPE>( \
1235 #undef READ_REPEATED_PACKED_FIXED_SIZE_PRIMITIVE
1237 template <
typename CType, enum WireFormatLite::FieldType DeclaredType>
1240 return ReadPackedPrimitive<CType, DeclaredType>(
input,
values);
1244 template <
typename MessageType>
1247 MessageType*
value) {
1248 if (!
input->IncrementRecursionDepth())
return false;
1249 if (!
value->MergePartialFromCodedStream(
input))
return false;
1250 input->UnsafeDecrementRecursionDepth();
1257 template <
typename MessageType>
1259 MessageType*
value) {
1261 if (!
input->ReadVarintSizeAsInt(&
length))
return false;
1262 std::pair<io::CodedInputStream::Limit, int>
p =
1263 input->IncrementRecursionDepthAndPushLimit(
length);
1264 if (
p.second < 0 || !
value->MergePartialFromCodedStream(
input))
return false;
1267 return input->DecrementRecursionDepthAndPopLimit(
p.first);
1336 template <
typename MessageType_WorkAroundCppLookupDefect>
1338 int field_number,
const MessageType_WorkAroundCppLookupDefect&
value,
1341 value.MessageType_WorkAroundCppLookupDefect::SerializeWithCachedSizes(
output);
1344 template <
typename MessageType_WorkAroundCppLookupDefect>
1346 int field_number,
const MessageType_WorkAroundCppLookupDefect&
value,
1350 value.MessageType_WorkAroundCppLookupDefect::GetCachedSize());
1351 value.MessageType_WorkAroundCppLookupDefect::SerializeWithCachedSizes(
output);
1424 template <
typename T>
1427 const int n =
value.size();
1430 const T* ii =
value.data();
1439 template <
typename T>
1442 #if defined(PROTOBUF_LITTLE_ENDIAN)
1445 const int n =
value.size();
1448 const T* ii =
value.data();
1449 const int bytes =
n *
static_cast<int>(
sizeof(ii[0]));
1585 template <
typename T>
1589 const int n =
value.size();
1594 const T* ii =
value.data();
1683 template <
typename MessageType>
1690 template <
typename MessageType>
1696 return value.InternalSerializeWithCachedSizesToArray(
target);
1701 template <
typename MessageType_WorkAroundCppLookupDefect>
1703 int field_number,
const MessageType_WorkAroundCppLookupDefect&
value,
1706 target =
value.MessageType_WorkAroundCppLookupDefect::
InternalSerializeWithCachedSizesToArray(
target);
1709 template <
typename MessageType_WorkAroundCppLookupDefect>
1711 int field_number,
const MessageType_WorkAroundCppLookupDefect&
value,
1716 value.MessageType_WorkAroundCppLookupDefect::GetCachedSize()),
1718 return value.MessageType_WorkAroundCppLookupDefect::
InternalSerializeWithCachedSizesToArray(
target);
1753 template <
typename MessageType>
1755 return value.ByteSizeLong();
1757 template <
typename MessageType>
1764 template <
typename MessageType_WorkAroundCppLookupDefect>
1766 const MessageType_WorkAroundCppLookupDefect&
value) {
1767 return value.MessageType_WorkAroundCppLookupDefect::ByteSizeLong();
1769 template <
typename MessageType_WorkAroundCppLookupDefect>
1771 const MessageType_WorkAroundCppLookupDefect&
value) {
1773 value.MessageType_WorkAroundCppLookupDefect::ByteSizeLong());
1785 template <
typename MS>
1799 if (tag == 0)
return false;
1804 if (!
input->ReadVarint32(&type_id))
return false;
1805 last_type_id = type_id;
1814 if (!ms.ParseField(last_type_id, &sub_input)) {
1824 if (last_type_id == 0) {
1837 if (!ms.ParseField(last_type_id,
input)) {
1850 if (!ms.SkipField(tag,
input))
return false;
1860 #include <google/protobuf/port_undef.inc>
1862 #endif // GOOGLE_PROTOBUF_WIRE_FORMAT_LITE_H__
static uint8 * WriteLittleEndian32ToArray(uint32 value, uint8 *target)
const Descriptor::ReservedRange value
size_t ComputeUnknownMessageSetItemsSize(const UnknownFieldSet &unknown_fields)
#define GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TypeName)
GLenum GLuint GLenum GLsizei length
static size_t VarintSize64(uint64 value)
void * message_data(MessageHeader *msg)
GLsizei const GLchar *const * string
static uint8 * WriteVarint32SignExtendedToArray(int32 value, uint8 *target)
static uint8 * WriteVarint32ToArray(uint32 value, uint8 *target)
#define T(upbtypeconst, upbtype, ctype, default_value)
GLenum GLsizei GLsizei GLint * values
bool ParseMessageSetItemImpl(io::CodedInputStream *input, MS ms)
static size_t VarintSize32(uint32 value)
static size_t VarintSize32SignExtended(int32 value)
static uint8 * WriteVarint64ToArray(uint64 value, uint8 *target)
typedef void(APIENTRY *GLDEBUGPROCARB)(GLenum source
~CodedOutputStreamFieldSkipper() override
static uint8 * WriteLittleEndian64ToArray(uint64 value, uint8 *target)
CodedOutputStreamFieldSkipper(io::CodedOutputStream *unknown_fields)
static uint8 * WriteStringWithSizeToArray(const std::string &str, uint8 *target)
static PROTOBUF_ALWAYS_INLINE uint8 * WriteTagToArray(uint32 value, uint8 *target)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
void SerializeUnknownMessageSetItems(const UnknownFieldSet &unknown_fields, io::CodedOutputStream *output)
GLsizei const GLfloat * value
io::CodedOutputStream * unknown_fields_
const upb_json_parsermethod const upb_symtab upb_sink * output
GLboolean GLboolean GLboolean GLboolean a
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:07:02