protobuf/src/google/protobuf/wire_format.h
Go to the documentation of this file.
1 // Protocol Buffers - Google's data interchange format
2 // Copyright 2008 Google Inc. All rights reserved.
3 // https://developers.google.com/protocol-buffers/
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // * Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 // * Redistributions in binary form must reproduce the above
12 // copyright notice, this list of conditions and the following disclaimer
13 // in the documentation and/or other materials provided with the
14 // distribution.
15 // * Neither the name of Google Inc. nor the names of its
16 // contributors may be used to endorse or promote products derived from
17 // this software without specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 
31 // Author: kenton@google.com (Kenton Varda)
32 // atenasio@google.com (Chris Atenasio) (ZigZag transform)
33 // Based on original Protocol Buffers design by
34 // Sanjay Ghemawat, Jeff Dean, and others.
35 //
36 // This header is logically internal, but is made public because it is used
37 // from protocol-compiler-generated code, which may reside in other components.
38 
39 #ifndef GOOGLE_PROTOBUF_WIRE_FORMAT_H__
40 #define GOOGLE_PROTOBUF_WIRE_FORMAT_H__
41 
42 #include <string>
43 
44 #include <google/protobuf/stubs/common.h>
45 #include <google/protobuf/parse_context.h>
46 #include <google/protobuf/io/coded_stream.h>
47 #include <google/protobuf/descriptor.h>
48 #include <google/protobuf/generated_message_util.h>
49 #include <google/protobuf/message.h>
50 #include <google/protobuf/metadata_lite.h>
51 #include <google/protobuf/wire_format_lite.h>
52 #include <google/protobuf/stubs/casts.h>
53 
54 #ifdef SWIG
55 #error "You cannot SWIG proto headers"
56 #endif
57 
58 #include <google/protobuf/port_def.inc>
59 
60 namespace google {
61 namespace protobuf {
62 class MapKey; // map_field.h
63 class UnknownFieldSet; // unknown_field_set.h
64 } // namespace protobuf
65 } // namespace google
66 
67 namespace google {
68 namespace protobuf {
69 namespace internal {
70 
71 // This class is for internal use by the protocol buffer library and by
72 // protocol-compiler-generated message classes. It must not be called
73 // directly by clients.
74 //
75 // This class contains code for implementing the binary protocol buffer
76 // wire format via reflection. The WireFormatLite class implements the
77 // non-reflection based routines.
78 //
79 // This class is really a namespace that contains only static methods
80 class PROTOBUF_EXPORT WireFormat {
81  public:
82  // Given a field return its WireType
83  static inline WireFormatLite::WireType WireTypeForField(
84  const FieldDescriptor* field);
85 
86  // Given a FieldDescriptor::Type return its WireType
87  static inline WireFormatLite::WireType WireTypeForFieldType(
89 
90  // Compute the byte size of a tag. For groups, this includes both the start
91  // and end tags.
92  static inline size_t TagSize(int field_number, FieldDescriptor::Type type);
93 
94  // These procedures can be used to implement the methods of Message which
95  // handle parsing and serialization of the protocol buffer wire format
96  // using only the Reflection interface. When you ask the protocol
97  // compiler to optimize for code size rather than speed, it will implement
98  // those methods in terms of these procedures. Of course, these are much
99  // slower than the specialized implementations which the protocol compiler
100  // generates when told to optimize for speed.
101 
102  // Read a message in protocol buffer wire format.
103  //
104  // This procedure reads either to the end of the input stream or through
105  // a WIRETYPE_END_GROUP tag ending the message, whichever comes first.
106  // It returns false if the input is invalid.
107  //
108  // Required fields are NOT checked by this method. You must call
109  // IsInitialized() on the resulting message yourself.
110  static bool ParseAndMergePartial(io::CodedInputStream* input,
111  Message* message);
112 
113  // This is meant for internal protobuf use (WireFormat is an internal class).
114  // This is the reflective implementation of the _InternalParse functionality.
115  static const char* _InternalParse(Message* msg, const char* ptr,
116  internal::ParseContext* ctx);
117 
118  // Serialize a message in protocol buffer wire format.
119  //
120  // Any embedded messages within the message must have their correct sizes
121  // cached. However, the top-level message need not; its size is passed as
122  // a parameter to this procedure.
123  //
124  // These return false iff the underlying stream returns a write error.
125  static void SerializeWithCachedSizes(const Message& message, int size,
127  int expected_endpoint = output->ByteCount() + size;
128  output->SetCur(
129  _InternalSerialize(message, output->Cur(), output->EpsCopy()));
130  GOOGLE_CHECK_EQ(output->ByteCount(), expected_endpoint)
131  << ": Protocol message serialized to a size different from what was "
132  "originally expected. Perhaps it was modified by another thread "
133  "during serialization?";
134  }
137 
138  // Implements Message::ByteSize() via reflection. WARNING: The result
139  // of this method is *not* cached anywhere. However, all embedded messages
140  // will have their ByteSize() methods called, so their sizes will be cached.
141  // Therefore, calling this method is sufficient to allow you to call
142  // WireFormat::SerializeWithCachedSizes() on the same object.
143  static size_t ByteSize(const Message& message);
144 
145  // -----------------------------------------------------------------
146  // Helpers for dealing with unknown fields
147 
148  // Skips a field value of the given WireType. The input should start
149  // positioned immediately after the tag. If unknown_fields is non-nullptr,
150  // the contents of the field will be added to it.
152  UnknownFieldSet* unknown_fields);
153 
154  // Reads and ignores a message from the input. If unknown_fields is
155  // non-nullptr, the contents will be added to it.
156  static bool SkipMessage(io::CodedInputStream* input,
157  UnknownFieldSet* unknown_fields);
158 
159  // Read a packed enum field. If the is_valid function is not nullptr, values
160  // for which is_valid(value) returns false are appended to
161  // unknown_fields_stream.
162  static bool ReadPackedEnumPreserveUnknowns(io::CodedInputStream* input,
163  uint32_t field_number,
164  bool (*is_valid)(int),
165  UnknownFieldSet* unknown_fields,
167 
168  // Write the contents of an UnknownFieldSet to the output.
169  static void SerializeUnknownFields(const UnknownFieldSet& unknown_fields,
171  output->SetCur(InternalSerializeUnknownFieldsToArray(
172  unknown_fields, output->Cur(), output->EpsCopy()));
173  }
174  // Same as above, except writing directly to the provided buffer.
175  // Requires that the buffer have sufficient capacity for
176  // ComputeUnknownFieldsSize(unknown_fields).
177  //
178  // Returns a pointer past the last written byte.
180  const UnknownFieldSet& unknown_fields, uint8_t* target) {
182  target, static_cast<int>(ComputeUnknownFieldsSize(unknown_fields)),
184  return InternalSerializeUnknownFieldsToArray(unknown_fields, target,
185  &stream);
186  }
187  static uint8_t* InternalSerializeUnknownFieldsToArray(
188  const UnknownFieldSet& unknown_fields, uint8_t* target,
190 
191  // Same thing except for messages that have the message_set_wire_format
192  // option.
194  const UnknownFieldSet& unknown_fields, io::CodedOutputStream* output) {
196  unknown_fields, output->Cur(), output->EpsCopy()));
197  }
198  // Same as above, except writing directly to the provided buffer.
199  // Requires that the buffer have sufficient capacity for
200  // ComputeUnknownMessageSetItemsSize(unknown_fields).
201  //
202  // Returns a pointer past the last written byte.
203  static uint8_t* SerializeUnknownMessageSetItemsToArray(
204  const UnknownFieldSet& unknown_fields, uint8_t* target);
206  const UnknownFieldSet& unknown_fields, uint8_t* target,
208 
209  // Compute the size of the UnknownFieldSet on the wire.
210  static size_t ComputeUnknownFieldsSize(const UnknownFieldSet& unknown_fields);
211 
212  // Same thing except for messages that have the message_set_wire_format
213  // option.
214  static size_t ComputeUnknownMessageSetItemsSize(
215  const UnknownFieldSet& unknown_fields);
216 
217  // Helper functions for encoding and decoding tags. (Inlined below and in
218  // _inl.h)
219  //
220  // This is different from MakeTag(field->number(), field->type()) in the
221  // case of packed repeated fields.
222  static uint32_t MakeTag(const FieldDescriptor* field);
223 
224  // Parse a single field. The input should start out positioned immediately
225  // after the tag.
226  static bool ParseAndMergeField(
227  uint32_t tag,
228  const FieldDescriptor* field, // May be nullptr for unknown
230 
231  // Serialize a single field.
233  const FieldDescriptor* field, // Cannot be nullptr
235  output->SetCur(InternalSerializeField(field, message, output->Cur(),
236  output->EpsCopy()));
237  }
238  static uint8_t* InternalSerializeField(
239  const FieldDescriptor* field, // Cannot be nullptr
241 
242  // Compute size of a single field. If the field is a message type, this
243  // will call ByteSize() for the embedded message, insuring that it caches
244  // its size.
245  static size_t FieldByteSize(const FieldDescriptor* field, // Can't be nullptr
246  const Message& message);
247 
248  // Parse/serialize a MessageSet::Item group. Used with messages that use
249  // option message_set_wire_format = true.
250  static bool ParseAndMergeMessageSetItem(io::CodedInputStream* input,
251  Message* message);
253  const FieldDescriptor* field, const Message& message,
255  output->SetCur(InternalSerializeMessageSetItem(
256  field, message, output->Cur(), output->EpsCopy()));
257  }
258  static uint8_t* InternalSerializeMessageSetItem(
261  static size_t MessageSetItemByteSize(const FieldDescriptor* field,
262  const Message& message);
263 
264  // Computes the byte size of a field, excluding tags. For packed fields, it
265  // only includes the size of the raw data, and not the size of the total
266  // length, but for other length-delimited types, the size of the length is
267  // included.
268  static size_t FieldDataOnlyByteSize(
269  const FieldDescriptor* field, // Cannot be nullptr
270  const Message& message);
271 
272  enum Operation {
273  PARSE = 0,
274  SERIALIZE = 1,
275  };
276 
277  // Verifies that a string field is valid UTF8, logging an error if not.
278  // This function will not be called by newly generated protobuf code
279  // but remains present to support existing code.
280  static void VerifyUTF8String(const char* data, int size, Operation op);
281  // The NamedField variant takes a field name in order to produce an
282  // informative error message if verification fails.
283  static void VerifyUTF8StringNamedField(const char* data, int size,
284  Operation op, const char* field_name);
285 
286  private:
287  struct MessageSetParser;
288  // Skip a MessageSet field.
289  static bool SkipMessageSetField(io::CodedInputStream* input,
290  uint32_t field_number,
291  UnknownFieldSet* unknown_fields);
292 
293  // Parse a MessageSet field.
294  static bool ParseAndMergeMessageSetField(uint32_t field_number,
295  const FieldDescriptor* field,
296  Message* message,
298  // Parses the value from the wire that belongs to tag.
299  static const char* _InternalParseAndMergeField(Message* msg, const char* ptr,
301  uint64_t tag,
302  const Reflection* reflection,
303  const FieldDescriptor* field);
304 
306 };
307 
308 // Subclass of FieldSkipper which saves skipped fields to an UnknownFieldSet.
309 class PROTOBUF_EXPORT UnknownFieldSetFieldSkipper : public FieldSkipper {
310  public:
312  : unknown_fields_(unknown_fields) {}
314 
315  // implements FieldSkipper -----------------------------------------
317  bool SkipMessage(io::CodedInputStream* input) override;
318  void SkipUnknownEnum(int field_number, int value) override;
319 
320  protected:
321  UnknownFieldSet* unknown_fields_;
322 };
323 
324 // inline methods ====================================================
325 
327  const FieldDescriptor* field) {
328  if (field->is_packed()) {
330  } else {
331  return WireTypeForFieldType(field->type());
332  }
333 }
334 
337  // Some compilers don't like enum -> enum casts, so we implicit_cast to
338  // int first.
340  static_cast<WireFormatLite::FieldType>(implicit_cast<int>(type)));
341 }
342 
345 }
346 
347 inline size_t WireFormat::TagSize(int field_number,
349  // Some compilers don't like enum -> enum casts, so we implicit_cast to
350  // int first.
352  field_number,
353  static_cast<WireFormatLite::FieldType>(implicit_cast<int>(type)));
354 }
355 
356 inline void WireFormat::VerifyUTF8String(const char* data, int size,
358 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
360  data, size, static_cast<WireFormatLite::Operation>(op), nullptr);
361 #else
362  // Avoid the compiler warning about unused variables.
363  (void)data;
364  (void)size;
365  (void)op;
366 #endif
367 }
368 
369 inline void WireFormat::VerifyUTF8StringNamedField(const char* data, int size,
371  const char* field_name) {
372 #ifdef GOOGLE_PROTOBUF_UTF8_VALIDATION_ENABLED
374  data, size, static_cast<WireFormatLite::Operation>(op), field_name);
375 #else
376  // Avoid the compiler warning about unused variables.
377  (void)data;
378  (void)size;
379  (void)op;
380  (void)field_name;
381 #endif
382 }
383 
384 
386  const UnknownFieldSet& unknown_fields, uint8_t* target,
387  io::EpsCopyOutputStream* stream) {
389  unknown_fields, target, stream);
390 }
391 
393  const UnknownFieldSet& unknown_fields) {
394  return WireFormat::ComputeUnknownMessageSetItemsSize(unknown_fields);
395 }
396 
397 // Compute the size of the UnknownFieldSet on the wire.
398 PROTOBUF_EXPORT
399 size_t ComputeUnknownFieldsSize(const InternalMetadata& metadata, size_t size,
400  CachedSize* cached_size);
401 
403  const MapKey& value);
404 
406  const MapKey& value, uint8_t* target,
407  io::EpsCopyOutputStream* stream);
408 } // namespace internal
409 } // namespace protobuf
410 } // namespace google
411 
412 #include <google/protobuf/port_undef.inc>
413 
414 #endif // GOOGLE_PROTOBUF_WIRE_FORMAT_H__
google::protobuf::FieldDescriptor::Type
Type
Definition: bloaty/third_party/protobuf/src/google/protobuf/descriptor.h:521
ptr
char * ptr
Definition: abseil-cpp/absl/base/internal/low_level_alloc_test.cc:45
google::protobuf.internal::WireFormat::SerializeWithCachedSizes
static void SerializeWithCachedSizes(const Message &message, int size, io::CodedOutputStream *output)
Definition: protobuf/src/google/protobuf/wire_format.h:125
google::protobuf.internal::WireFormatLite::WireTypeForFieldType
static WireFormatLite::WireType WireTypeForFieldType(WireFormatLite::FieldType type)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:152
google::protobuf::value
const Descriptor::ReservedRange value
Definition: bloaty/third_party/protobuf/src/google/protobuf/descriptor.h:1954
google::protobuf.internal::ComputeUnknownMessageSetItemsSize
size_t ComputeUnknownMessageSetItemsSize(const UnknownFieldSet &unknown_fields)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:376
google::protobuf::FieldDescriptor
Definition: bloaty/third_party/protobuf/src/google/protobuf/descriptor.h:515
google::protobuf.internal::WireFormat::TagSize
static size_t TagSize(int field_number, FieldDescriptor::Type type)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:331
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS
#define GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TypeName)
Definition: bloaty/third_party/protobuf/src/google/protobuf/stubs/macros.h:40
ctx
Definition: benchmark-async.c:30
metadata
Definition: cq_verifier.cc:48
google::protobuf.internal::WireFormat::SerializeUnknownFieldsToArray
static uint8_t * SerializeUnknownFieldsToArray(const UnknownFieldSet &unknown_fields, uint8_t *target)
Definition: protobuf/src/google/protobuf/wire_format.h:179
google::protobuf.internal::MapKeyDataOnlyByteSize
static size_t MapKeyDataOnlyByteSize(const FieldDescriptor *field, const MapKey &value)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.cc:1138
google::protobuf.internal::SerializeMapKeyWithCachedSizes
static uint8 * SerializeMapKeyWithCachedSizes(const FieldDescriptor *field, const MapKey &value, uint8 *target, io::EpsCopyOutputStream *stream)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.cc:687
google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic
static bool IsDefaultSerializationDeterministic()
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:1232
google::protobuf.internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED
@ WIRETYPE_LENGTH_DELIMITED
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:104
GOOGLE_CHECK_EQ
#define GOOGLE_CHECK_EQ(A, B)
Definition: bloaty/third_party/protobuf/src/google/protobuf/stubs/logging.h:156
google::protobuf.internal::ParseContext
Definition: bloaty/third_party/protobuf/src/google/protobuf/parse_context.h:336
google::protobuf
Definition: bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:12
google::protobuf.internal::WireFormat
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:76
google::protobuf::RepeatedField< int >
google::protobuf::Reflection
Definition: bloaty/third_party/protobuf/src/google/protobuf/message.h:397
uint8_t
unsigned char uint8_t
Definition: stdint-msvc2008.h:78
google::protobuf.internal.python_message._InternalParse
_InternalParse
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1196
google::protobuf::python::cmessage::UnknownFieldSet
static PyObject * UnknownFieldSet(CMessage *self)
Definition: bloaty/third_party/protobuf/python/google/protobuf/pyext/message.cc:2512
message
char * message
Definition: libuv/docs/code/tty-gravity/main.c:12
google::protobuf.internal::WireFormat::Operation
Operation
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:263
google::protobuf.internal::WireFormatLite::MakeTag
constexpr static uint32 MakeTag(int field_number, WireType type)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:783
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
google::protobuf.internal::UnknownFieldSetFieldSkipper::~UnknownFieldSetFieldSkipper
~UnknownFieldSetFieldSkipper() override
Definition: protobuf/src/google/protobuf/wire_format.h:313
FieldDescriptor
Definition: bloaty/third_party/protobuf/ruby/ext/google/protobuf_c/protobuf.h:133
google::protobuf::io::EpsCopyOutputStream
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:651
google::protobuf.internal::WireFormatLite::Operation
Operation
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:322
tag
static void * tag(intptr_t t)
Definition: bad_client.cc:318
gmock_output_test.output
output
Definition: bloaty/third_party/googletest/googlemock/test/gmock_output_test.py:175
google::protobuf.internal.python_message._InternalSerialize
_InternalSerialize
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1112
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90
google::protobuf.internal::UnknownFieldSetFieldSkipper::UnknownFieldSetFieldSkipper
UnknownFieldSetFieldSkipper(UnknownFieldSet *unknown_fields)
Definition: protobuf/src/google/protobuf/wire_format.h:311
google::protobuf.internal::WireFormat::ComputeUnknownMessageSetItemsSize
static size_t ComputeUnknownMessageSetItemsSize(const UnknownFieldSet &unknown_fields)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.cc:308
google::protobuf.internal::WireFormat::VerifyUTF8String
static void VerifyUTF8String(const char *data, int size, Operation op)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:340
grpc::protobuf::io::CodedInputStream
GRPC_CUSTOM_CODEDINPUTSTREAM CodedInputStream
Definition: include/grpcpp/impl/codegen/config_protobuf.h:102
google::protobuf.internal::WireFormat::SerializeMessageSetItemWithCachedSizes
static void SerializeMessageSetItemWithCachedSizes(const FieldDescriptor *field, const Message &message, io::CodedOutputStream *output)
Definition: protobuf/src/google/protobuf/wire_format.h:252
google::protobuf.internal::WireFormatLite::VerifyUtf8String
static bool VerifyUtf8String(const char *data, int size, Operation op, const char *field_name)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.cc:584
google::protobuf.internal::WireFormatLite::FieldType
FieldType
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:111
data
char data[kBufferLength]
Definition: abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
google::protobuf.internal.python_message.ByteSize
ByteSize
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/python_message.py:1067
google::protobuf.internal::WireFormat::MakeTag
static uint32 MakeTag(const FieldDescriptor *field)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:327
msg
std::string msg
Definition: client_interceptors_end2end_test.cc:372
google::protobuf::io::CodedOutputStream
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:1044
google::protobuf.internal::WireFormat::WireTypeForField
static WireFormatLite::WireType WireTypeForField(const FieldDescriptor *field)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:310
google::protobuf.internal::WireFormat::SerializeUnknownMessageSetItems
static void SerializeUnknownMessageSetItems(const UnknownFieldSet &unknown_fields, io::CodedOutputStream *output)
Definition: protobuf/src/google/protobuf/wire_format.h:193
google::protobuf::Message
Definition: bloaty/third_party/protobuf/src/google/protobuf/message.h:205
field
const FieldDescriptor * field
Definition: bloaty/third_party/protobuf/src/google/protobuf/compiler/parser_unittest.cc:2692
google::protobuf.internal::WireFormatLite::TagSize
static size_t TagSize(int field_number, WireFormatLite::FieldType type)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:796
google::protobuf.internal.decoder.SkipField
def SkipField
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/decoder.py:1036
google::protobuf.internal::WireFormat::SerializeFieldWithCachedSizes
static void SerializeFieldWithCachedSizes(const FieldDescriptor *field, const Message &message, io::CodedOutputStream *output)
Definition: protobuf/src/google/protobuf/wire_format.h:232
google::protobuf.internal::WireFormat::VerifyUTF8StringNamedField
static void VerifyUTF8StringNamedField(const char *data, int size, Operation op, const char *field_name)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:353
google::protobuf.internal::WireFormat::WireTypeForFieldType
static WireFormatLite::WireType WireTypeForFieldType(FieldDescriptor::Type type)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:319
google::protobuf::UnknownFieldSet
Definition: bloaty/third_party/protobuf/src/google/protobuf/unknown_field_set.h:81
google::protobuf::io::CodedInputStream
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/coded_stream.h:180
values
std::array< int64_t, Size > values
Definition: abseil-cpp/absl/container/btree_benchmark.cc:608
google::protobuf.internal::WireFormat::SerializeUnknownFields
static void SerializeUnknownFields(const UnknownFieldSet &unknown_fields, io::CodedOutputStream *output)
Definition: protobuf/src/google/protobuf/wire_format.h:169
google::protobuf.internal::WireFormat::InternalSerializeUnknownMessageSetItemsToArray
static uint8 * InternalSerializeUnknownMessageSetItemsToArray(const UnknownFieldSet &unknown_fields, uint8 *target, io::EpsCopyOutputStream *stream)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.cc:230
google::protobuf.internal::WireFormatLite::WireType
WireType
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format_lite.h:101
input
std::string input
Definition: bloaty/third_party/protobuf/src/google/protobuf/io/tokenizer_unittest.cc:197
internal
Definition: benchmark/test/output_test_helper.cc:20
google::protobuf.internal::ComputeUnknownFieldsSize
size_t ComputeUnknownFieldsSize(const InternalMetadataWithArena &metadata, size_t total_size, CachedSize *cached_size)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.cc:1350
asyncio_get_stats.type
type
Definition: asyncio_get_stats.py:37
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
google::protobuf.internal.wire_format.MessageSetItemByteSize
def MessageSetItemByteSize(field_number, msg)
Definition: bloaty/third_party/protobuf/python/google/protobuf/internal/wire_format.py:204
op
static grpc_op * op
Definition: test/core/fling/client.cc:47
setup.target
target
Definition: third_party/bloaty/third_party/protobuf/python/setup.py:179
google
Definition: bloaty/third_party/protobuf/benchmarks/util/data_proto2_to_proto3_util.h:11
framework.infrastructure.gcp.api.Operation
Operation
Definition: api.py:60
Message
Definition: protobuf/php/ext/google/protobuf/message.c:53
google::protobuf.internal::InternalSerializeUnknownMessageSetItemsToArray
uint8 * InternalSerializeUnknownMessageSetItemsToArray(const UnknownFieldSet &unknown_fields, uint8 *target, io::EpsCopyOutputStream *stream)
Definition: bloaty/third_party/protobuf/src/google/protobuf/wire_format.h:369
stream
voidpf stream
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136


grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:53