Go to the documentation of this file.
34 #ifndef GOOGLE_PROTOBUF_PYTHON_CPP_MESSAGE_H__
35 #define GOOGLE_PROTOBUF_PYTHON_CPP_MESSAGE_H__
37 #define PY_SSIZE_T_CLEAN
43 #include <unordered_map>
45 #include <google/protobuf/stubs/common.h>
60 struct PyMessageFactory;
73 struct ContainerBase {
92 PyObject*
AsPyObject() {
return reinterpret_cast<PyObject*
>(
this); }
102 typedef struct CMessage :
public ContainerBase {
117 typedef std::unordered_map<const FieldDescriptor*, ContainerBase*>
150 struct CMessageClass {
153 PyHeapTypeObject
super;
169 return reinterpret_cast<PyObject*
>(
this);
219 ContainerBase*
value);
285 #define IS_64BIT (SIZEOF_LONG == 8)
287 #define FIELD_IS_REPEATED(field_descriptor) \
288 ((field_descriptor)->label() == FieldDescriptor::LABEL_REPEATED)
290 #define GOOGLE_CHECK_GET_INT32(arg, value, err) \
292 if (!CheckAndGetInteger(arg, &value)) { \
296 #define GOOGLE_CHECK_GET_INT64(arg, value, err) \
298 if (!CheckAndGetInteger(arg, &value)) { \
302 #define GOOGLE_CHECK_GET_UINT32(arg, value, err) \
304 if (!CheckAndGetInteger(arg, &value)) { \
308 #define GOOGLE_CHECK_GET_UINT64(arg, value, err) \
310 if (!CheckAndGetInteger(arg, &value)) { \
314 #define GOOGLE_CHECK_GET_FLOAT(arg, value, err) \
316 if (!CheckAndGetFloat(arg, &value)) { \
320 #define GOOGLE_CHECK_GET_DOUBLE(arg, value, err) \
322 if (!CheckAndGetDouble(arg, &value)) { \
326 #define GOOGLE_CHECK_GET_BOOL(arg, value, err) \
328 if (!CheckAndGetBool(arg, &value)) { \
332 #define FULL_MODULE_NAME "google.protobuf.pyext._message"
344 const Reflection* reflection,
358 PyObject* py_message_factory);
362 PyObject* py_message_factory);
377 #endif // GOOGLE_PROTOBUF_PYTHON_CPP_MESSAGE_H__
const FieldDescriptor * GetExtensionDescriptor(PyObject *extension)
PyObject * Clear(CMessage *self)
const Descriptor::ReservedRange value
PyObject * PickleError_class
CMessage * NewEmptyMessage(CMessageClass *type)
const Descriptor::ReservedRange const EnumValueDescriptor const MethodDescriptor extension
int InitAttributes(CMessage *self, PyObject *args, PyObject *kwargs)
PyObject * ToStringObject(const FieldDescriptor *descriptor, const string &value)
template bool CheckAndGetInteger< uint32 >(PyObject *, uint32 *)
PyObject * MergeFrom(CMessage *self, PyObject *arg)
int HasFieldByDescriptor(CMessage *self, const FieldDescriptor *field_descriptor)
template bool CheckAndGetInteger< int64 >(PyObject *, int64 *)
template bool CheckAndGetInteger< uint64 >(PyObject *, uint64 *)
PyObject * PyMessage_New(const Descriptor *descriptor, PyObject *py_message_factory)
PyObject * InternalGetScalar(const Message *message, const FieldDescriptor *field_descriptor)
std::unordered_map< const FieldDescriptor *, ContainerBase * > CompositeFieldsMap
#define T(upbtypeconst, upbtype, ctype, default_value)
PyObject * CheckString(PyObject *arg, const FieldDescriptor *descriptor)
PyObject * RegisterExtension(PyObject *cls, PyObject *extension_handle)
PyTypeObject * CMessageClass_Type
PyTypeObject * CMessage_Type
const FieldDescriptor * parent_field_descriptor
PyObject * py_message_descriptor
bool SetCompositeField(CMessage *self, const FieldDescriptor *field, ContainerBase *value)
PyObject * SetAllowOversizeProtos(PyObject *m, PyObject *arg)
struct google::protobuf::python::ExtensionDict ExtensionDict
int ClearFieldByDescriptor(CMessage *self, const FieldDescriptor *field_descriptor)
PyObject * FindInitializationErrors(CMessage *self)
void RemoveFromParentCache()
template bool CheckAndGetInteger< int32 >(PyObject *, int32 *)
int AssureWritable(CMessage *self)
int SetFieldValue(CMessage *self, const FieldDescriptor *field_descriptor, PyObject *value)
const Descriptor * message_descriptor
bool SetSubmessage(CMessage *self, CMessage *submessage)
bool CheckAndGetFloat(PyObject *arg, float *value)
const FieldDescriptor * field
google::protobuf::python::CMessage CMessage
CMessage * MaybeReleaseSubMessage(Message *sub_message)
PyMessageFactory * GetFactoryForMessage(CMessage *message)
PyMessageFactory * py_message_factory
bool CheckFieldBelongsToMessage(const FieldDescriptor *field_descriptor, const Message *message)
int DeleteRepeatedField(CMessage *self, const FieldDescriptor *field_descriptor, PyObject *slice)
int InternalSetScalar(CMessage *self, const FieldDescriptor *field_descriptor, PyObject *arg)
CompositeFieldsMap * composite_fields
PyObject * HasField(CMessage *self, PyObject *arg)
std::unordered_map< const Message *, CMessage * > SubMessagesMap
CMessage * BuildSubMessageFromPointer(const FieldDescriptor *field_descriptor, Message *sub_message, CMessageClass *message_class)
bool CheckAndGetBool(PyObject *arg, bool *value)
bool InitProto2MessageModule(PyObject *m)
bool CheckAndSetString(PyObject *arg, Message *message, const FieldDescriptor *descriptor, const Reflection *reflection, bool append, int index)
void FormatTypeError(PyObject *arg, char *expected_types)
int InternalSetNonOneofScalar(Message *message, const FieldDescriptor *field_descriptor, PyObject *arg)
PyObject * unknown_field_set
bool CheckAndGetDouble(PyObject *arg, double *value)
PyObject * PyMessage_NewMessageOwnedExternally(Message *message, PyObject *message_factory)
CMessageClass * GetMessageClass()
PyObject * GetFieldValue(CMessage *self, const FieldDescriptor *field_descriptor)
static const char descriptor[1336]
const Message * PyMessage_GetMessagePointer(PyObject *msg)
SubMessagesMap * child_submessages
CMessage * InternalGetSubMessage(CMessage *self, const FieldDescriptor *field_descriptor)
Message * PyMessage_GetMutableMessagePointer(PyObject *msg)
bool CheckAndGetInteger(PyObject *arg, T *value)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:25