38 #ifndef GOOGLE_PROTOBUF_GENERATED_MESSAGE_REFLECTION_H__ 39 #define GOOGLE_PROTOBUF_GENERATED_MESSAGE_REFLECTION_H__ 55 namespace google_opensource {
68 class DefaultEmptyOneof;
71 class GeneratedMessageReflection;
134 const Message* default_instance,
137 int unknown_fields_offset,
138 int extensions_offset,
143 int is_default_instance_offset = -1);
170 const Message* default_instance,
173 int unknown_fields_offset,
174 int extensions_offset,
175 const void* default_oneof_instance,
176 int oneof_case_offset,
181 int is_default_instance_offset = -1);
190 const Message* default_instance,
193 int unknown_fields_offset,
194 int extensions_offset,
195 const void* default_oneof_instance,
196 int oneof_case_offset,
199 int is_default_instance_offset = -1);
203 const Message* default_instance,
206 int unknown_fields_offset,
207 int extensions_offset,
210 int is_default_instance_offset = -1);
217 int SpaceUsed(
const Message& message)
const;
222 bool HasOneof(
const Message& message,
229 const vector<const FieldDescriptor*>& fields)
const;
231 int index1,
int index2)
const;
233 vector<const FieldDescriptor*>*
output)
const;
243 float GetFloat (
const Message& message,
245 double GetDouble(
const Message& message,
247 bool GetBool (
const Message& message,
251 const string& GetStringReference(
const Message& message,
253 string* scratch)
const;
256 int GetEnumValue(
const Message& message,
267 bool ContainsMapKey(
const Message& message,
270 bool InsertOrLookupMapValue(
Message* message,
274 bool DeleteMapValue(
Message* message,
286 void SetInt32 (
Message* message,
288 void SetInt64 (
Message* message,
290 void SetUInt32(
Message* message,
292 void SetUInt64(
Message* message,
294 void SetFloat (
Message* message,
296 void SetDouble(
Message* message,
298 void SetBool (
Message* message,
300 void SetString(
Message* message,
302 const string& value)
const;
309 void SetAllocatedMessage(
Message* message,
323 float GetRepeatedFloat (
const Message& message,
325 double GetRepeatedDouble(
const Message& message,
327 bool GetRepeatedBool (
const Message& message,
329 string GetRepeatedString(
const Message& message,
331 const string& GetRepeatedStringReference(
const Message& message,
333 int index,
string* scratch)
const;
337 int GetRepeatedEnumValue(
const Message& message,
345 void SetRepeatedInt32 (
Message* message,
347 void SetRepeatedInt64 (
Message* message,
349 void SetRepeatedUInt32(
Message* message,
351 void SetRepeatedUInt64(
Message* message,
353 void SetRepeatedFloat (
Message* message,
355 void SetRepeatedDouble(
Message* message,
357 void SetRepeatedBool (
Message* message,
359 void SetRepeatedString(
Message* message,
361 const string& value)
const;
365 int index,
int value)
const;
371 void AddInt32 (
Message* message,
373 void AddInt64 (
Message* message,
375 void AddUInt32(
Message* message,
377 void AddUInt64(
Message* message,
383 void AddBool (
Message* message,
385 void AddString(
Message* message,
395 void AddAllocatedMessage(
402 bool SupportsUnknownEnumValues()
const;
406 static const int kNoArenaPointer = -1;
415 static const int kUnknownFieldSetInMetadata = -1;
418 void* MutableRawRepeatedField(
422 const void* GetRawRepeatedField(
424 FieldDescriptor::CppType,
int ctype,
429 virtual void* RepeatedFieldData(
435 friend class GeneratedMessage;
439 friend class upb::google_opensource::GMR_Handlers;
442 const Message* default_instance_;
443 const void* default_oneof_instance_;
446 int has_bits_offset_;
447 int oneof_case_offset_;
448 int unknown_fields_offset_;
449 int extensions_offset_;
451 int is_default_instance_offset_;
454 static const int kHasNoDefaultInstanceField = -1;
459 template <
typename Type>
462 template <
typename Type>
465 template <
typename Type>
467 template <
typename Type>
470 inline const uint32* GetHasBits(
const Message& message)
const;
472 inline uint32 GetOneofCase(
475 inline uint32* MutableOneofCase(
482 GetInternalMetadataWithArena(
const Message& message)
const;
484 MutableInternalMetadataWithArena(
Message* message)
const;
486 inline bool GetIsDefaultInstance(
const Message& message)
const;
488 inline bool HasBit(
const Message& message,
490 inline void SetBit(
Message* message,
492 inline void ClearBit(
Message* message,
494 inline void SwapBit(
Message* message1,
500 void SwapField(
Message* message1,
504 void SwapOneofField(
Message* message1,
508 inline bool HasOneofField(
const Message& message,
510 inline void SetOneofCase(
Message* message,
512 inline void ClearOneofField(
Message* message,
515 template <
typename Type>
516 inline const Type& GetField(
const Message& message,
518 template <
typename Type>
519 inline void SetField(
Message* message,
521 template <
typename Type>
524 template <
typename Type>
525 inline const Type& GetRepeatedField(
const Message& message,
528 template <
typename Type>
529 inline const Type& GetRepeatedPtrField(
const Message& message,
532 template <
typename Type>
533 inline void SetRepeatedField(
Message* message,
536 template <
typename Type>
537 inline Type* MutableRepeatedField(
Message* message,
540 template <
typename Type>
543 template <
typename Type>
551 void SetEnumValueInternal(
Message* message,
554 void SetRepeatedEnumValueInternal(
Message* message,
558 void AddEnumValueInternal(
Message* message,
567 void UnsafeArenaSetAllocatedMessage(
Message* message,
585 #if defined(__clang__) 589 #define GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TYPE, FIELD) \ 590 _Pragma("clang diagnostic push") \ 591 _Pragma("clang diagnostic ignored \"-Winvalid-offsetof\"") \ 592 __builtin_offsetof(TYPE, FIELD) \ 593 _Pragma("clang diagnostic pop") 599 #define GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TYPE, FIELD) \ 601 reinterpret_cast<const char*>( \ 602 &reinterpret_cast<const TYPE*>(16)->FIELD) - \ 603 reinterpret_cast<const char*>(16)) 606 #define PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ONEOF, FIELD) \ 608 reinterpret_cast<const char*>(&(ONEOF->FIELD)) \ 609 - reinterpret_cast<const char*>(ONEOF)) 634 template<
typename To,
typename From>
636 #if defined(GOOGLE_PROTOBUF_NO_RTTI) || (defined(_MSC_VER)&&!defined(_CPPRTTI)) 639 return dynamic_cast<To
>(from);
651 template <
typename T>
655 const T&(*get_default_instance)() = &T::default_instance;
656 (
void)get_default_instance;
662 #if defined(GOOGLE_PROTOBUF_NO_RTTI) || \ 663 (defined(_MSC_VER) && !defined(_CPPRTTI)) 664 bool ok = &T::default_instance() ==
669 return dynamic_cast<T*
>(from);
673 template <
typename T>
675 const Message* message_const = from;
676 return const_cast<T*
>(DynamicCastToGenerated<const T>(message_const));
683 #endif // GOOGLE_PROTOBUF_GENERATED_MESSAGE_REFLECTION_H__ Definition: message.h:179
EnumValueDescriptorProto * AddEnumValue(EnumDescriptorProto *enum_proto, const string &name, int number)
Definition: descriptor_unittest.cc:157
const FieldDescriptor * field
Definition: parser_unittest.cc:2279
virtual const Message * GetPrototype(const Descriptor *type)=0
Definition: map_field.h:60
Definition: message.h:401
#define GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(TypeName)
Definition: macros.h:40
ClearField
Definition: python_message.py:887
const Descriptor * descriptor_
Definition: field_comparator_test.cc:58
Definition: extension_set.h:160
const Descriptor * descriptor
Definition: descriptor.cc:271
const OneofDescriptor * oneof_descriptor
Definition: descriptor.cc:273
Definition: descriptor.h:172
virtual const Reflection * GetReflection() const
Definition: message.h:331
EGLImageKHR int EGLint EGLint * offsets
Definition: eglext.h:861
Definition: AirOpcode.h:13
#define desc
Definition: extension_set.h:320
Definition: descriptor.h:439
void
Definition: AVFoundationCFSoftLinking.h:81
Definition: generated_message_reflection.h:100
int32_t int32
Definition: port.h:130
TestSubObjConstructor T
Definition: TestTypedefs.idl:84
ListFields
Definition: python_message.py:805
rtc::scoped_refptr< PeerConnectionFactoryInterface > factory(webrtc::CreatePeerConnectionFactory(network_thread.get(), worker_thread.get(), signaling_thread.get(), nullptr, encoder_factory, decoder_factory))
Definition: peerconnection_jni.cc:1838
GLuint index
Definition: gl2.h:383
EGLAttrib * value
Definition: eglext.h:120
T * DynamicCastToGenerated(Message *from)
Definition: generated_message_reflection.h:674
Definition: protobuf.h:64
uint32_t uint32
Definition: port.h:135
EGLImageKHR EGLint * name
Definition: eglext.h:851
Definition: __init__.py:1
uint64_t uint64
Definition: port.h:136
To dynamic_cast_if_available(From from)
Definition: generated_message_reflection.h:635
Definition: type.pb.h:133
virtual MessageFactory * GetMessageFactory() const
Definition: message.cc:410
Definition: unknown_field_set.h:75
EGLenum type
Definition: eglext.h:63
Definition: document.h:393
Definition: descriptor.h:1355
int64_t int64
Definition: port.h:131
Definition: AirOpcode.h:12
FieldDescriptor::CppType cpp_type(FieldType type)
Definition: extension_set_heavy.cc:128
#define NULL
Definition: common_types.h:41
#define LIBPROTOBUF_EXPORT
Definition: port.h:97
Definition: gflags_completions.h:115
Definition: descriptor.h:919
FieldDescriptorProto * AddField(DescriptorProto *parent, const string &name, int number, FieldDescriptorProto::Label label, FieldDescriptorProto::Type type)
Definition: descriptor_unittest.cc:101
To down_cast(From *f)
Definition: casts.h:81
Definition: message.h:1006
EnumDescriptorProto * AddEnum(FileDescriptorProto *file, const string &name)
Definition: descriptor_unittest.cc:81
DescriptorProto * AddMessage(FileDescriptorProto *file, const string &name)
Definition: descriptor_unittest.cc:69
CFArrayRef CFTypeRef key
Definition: AVFoundationCFSoftLinking.h:129
GLuint GLsizei const GLchar * message
Definition: gl2ext.h:137
Definition: descriptor.h:736
const Descriptor * GetDescriptor() const
Definition: message.h:322
Definition: map_field.h:327
GLuint GLsizei GLsizei GLfloat * val
Definition: gl2ext.h:3301
HasField
Definition: python_message.py:849
message_type
Definition: descriptor_pb2.py:1556
Message * ReleaseMessage(CMessage *self, const Descriptor *descriptor, const FieldDescriptor *field_descriptor)
Definition: message.cc:1556
ANGLE_EXPORT const GLubyte *GL_APIENTRY GetString(GLenum name)
Definition: entry_points_gles_2_0.cpp:1660