Go to the documentation of this file.
31 #ifndef GOOGLE_PROTOBUF_GENERATED_MESSAGE_TABLE_DRIVEN_H__
32 #define GOOGLE_PROTOBUF_GENERATED_MESSAGE_TABLE_DRIVEN_H__
44 #if defined(__clang__) || (defined(_MSC_VER) && _MSC_VER >= 1911)
45 #define PROTOBUF_CONSTEXPR_VAR constexpr
47 #define PROTOBUF_CONSTEXPR_VAR
51 #error "You cannot SWIG proto headers"
54 #include <google/protobuf/port_def.inc>
65 static constexpr
const unsigned char kTypeMask = 0x1f;
108 kStringPieceType = 20,
111 kSpecial = kNumTypes * kNumTypeClasses,
114 static int CalculateType(
int fundamental_type, FieldTypeClass type_class);
206 static_assert(
sizeof(
ParseTableField) <= 16,
"ParseTableField is too large");
223 template <
typename Entry>
228 typedef typename Entry::template Parser<MapFieldType, MapType> ParserType;
230 ParserType
parser(
static_cast<MapFieldType*
>(map_field));
248 int num_fields =
table->num_fields - 1;
260 int32 num_fields,
bool is_deterministic,
268 int num_fields =
table->num_fields - 1;
270 is_deterministic,
buffer);
273 template <
typename T>
281 return a.Get() <
b.Get();
286 template <
typename T>
291 template <
typename T>
297 template <
typename MapFieldType, const SerializationTable* table>
301 typedef typename MapFieldType::MapType::const_iterator
Iter;
303 const MapFieldType& map_field =
304 *
reinterpret_cast<const MapFieldType*
>(
base +
offset);
308 if (!
output->IsSerializationDeterministic()) {
309 for (
Iter it = map_field.GetMap().begin();
it != map_field.GetMap().end();
311 Entry map_entry(*
it);
312 output->WriteVarint32(tag);
313 output->WriteVarint32(map_entry._cached_size_);
318 std::vector<Entry>
v;
319 for (
Iter it = map_field.GetMap().begin();
it != map_field.GetMap().end();
321 v.push_back(Entry(*
it));
324 for (
int i = 0;
i <
v.size();
i++) {
325 output->WriteVarint32(tag);
326 output->WriteVarint32(
v[
i]._cached_size_);
337 #include <google/protobuf/port_undef.inc>
339 #endif // GOOGLE_PROTOBUF_GENERATED_MESSAGE_TABLE_DRIVEN_H__
bool ParseMap(io::CodedInputStream *input, void *map_field)
const MessageLite * default_instance() const
bool operator()(const ArenaStringPtr &a, const ArenaStringPtr &b) const
void MapFieldSerializer(const uint8 *base, uint32 offset, uint32 tag, uint32 has_offset, io::CodedOutputStream *output)
uint8 * SerializeInternalToArray(const uint8 *base, const FieldMetadata *table, int32 num_fields, bool is_deterministic, uint8 *buffer)
const FieldMetadata * field_table
static constexpr const unsigned char kInvalidMask
static PyObject * Iter(PyContainer *self)
GLsizei const GLchar *const * strings
constexpr AuxillaryParseTableField(AuxillaryParseTableField::map_aux m)
PROTOBUF_EXPORT void SerializeInternal(const uint8 *base, const FieldMetadata *table, int32 num_fields, io::CodedOutputStream *output)
@ TYPE_STRING_STRING_PIECE
bool MergePartialFromCodedStreamLite(MessageLite *msg, const ParseTable &table, io::CodedInputStream *input)
#define T(upbtypeconst, upbtype, ctype, default_value)
bool operator()(const T &a, const T &b) const
const MessageLite * default_message() const
unsigned char processing_type
GLboolean GLboolean GLboolean b
static constexpr const unsigned char kTypeMask
constexpr AuxillaryParseTableField(AuxillaryParseTableField::message_aux m)
bool MergePartialFromCodedStream(MessageLite *msg, const ParseTable &table, io::CodedInputStream *input)
const AuxillaryParseTableField * aux
uint8 * TableSerializeToArray(const MessageLite &msg, const SerializationTable *table, bool is_deterministic, uint8 *buffer)
static constexpr const unsigned char kOneofMask
AuxillaryParseTableField()=default
bool(* EnumValidator)(int)
@ TYPE_BYTES_STRING_PIECE
static constexpr const unsigned char kNotPackedMask
bool operator()(const MapEntryHelper< T > &a, const MapEntryHelper< T > &b) const
constexpr AuxillaryParseTableField(AuxillaryParseTableField::enum_aux e)
const void * default_message_void
bool Compare(const T &a, const T &b) const
constexpr AuxillaryParseTableField(AuxillaryParseTableField::string_aux s)
const void * default_instance_void
unsigned char packed_wiretype
const upb_json_parsermethod * m
void TableSerialize(const MessageLite &msg, const SerializationTable *table, io::CodedOutputStream *output)
unsigned char normal_wiretype
const ParseTableField * fields
GLsizei const GLfloat * value
const upb_json_parsermethod const upb_symtab upb_sink * output
static constexpr const unsigned char kRepeatedMask
bool(* parse_map)(io::CodedInputStream *, void *)
GLboolean GLboolean GLboolean GLboolean a
libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:51