25 #ifndef __PROTOBUF_HELPER_H__
26 #define __PROTOBUF_HELPER_H__
35 #define protobuf_field_type_VALUE_STRING_LIST(XXX) \
36 XXX(PROTOBUF_TYPE_NONE, 0, "") \
37 XXX(PROTOBUF_TYPE_DOUBLE, 1, "double") \
38 XXX(PROTOBUF_TYPE_FLOAT, 2, "float") \
39 XXX(PROTOBUF_TYPE_INT64, 3, "int64") \
40 XXX(PROTOBUF_TYPE_UINT64, 4, "uint64") \
41 XXX(PROTOBUF_TYPE_INT32, 5, "int32") \
42 XXX(PROTOBUF_TYPE_FIXED64, 6, "fixed64") \
43 XXX(PROTOBUF_TYPE_FIXED32, 7, "fixed32") \
44 XXX(PROTOBUF_TYPE_BOOL, 8, "bool") \
45 XXX(PROTOBUF_TYPE_STRING, 9, "string") \
46 XXX(PROTOBUF_TYPE_GROUP, 10, "group") \
47 XXX(PROTOBUF_TYPE_MESSAGE, 11, "message") \
48 XXX(PROTOBUF_TYPE_BYTES, 12, "bytes") \
49 XXX(PROTOBUF_TYPE_UINT32, 13, "uint32") \
50 XXX(PROTOBUF_TYPE_ENUM, 14, "enum") \
51 XXX(PROTOBUF_TYPE_SFIXED32, 15, "sfixed32") \
52 XXX(PROTOBUF_TYPE_SFIXED64, 16, "sfixed64") \
53 XXX(PROTOBUF_TYPE_SINT32, 17, "sint32") \
54 XXX(PROTOBUF_TYPE_SINT64, 18, "sint64")
56 #define PROTOBUF_MAX_FIELD_TYPE 18
58 VALUE_STRING_ENUM(protobuf_field_type);
59 VALUE_STRING_ARRAY_GLOBAL_DCL(protobuf_field_type);
62 typedef struct PbwDescriptorPool PbwDescriptorPool;
64 typedef struct PbwMethodDescriptor PbwMethodDescriptor;
66 typedef struct PbwDescriptor PbwDescriptor;
68 typedef struct PbwFieldDescriptor PbwFieldDescriptor;
70 typedef struct PbwEnumDescriptor PbwEnumDescriptor;
72 typedef struct PbwEnumValueDescriptor PbwEnumValueDescriptor;
74 typedef void(*pbw_report_error_cb_t)(
const char *msg_format, ...);
86 pbw_load_proto_file(PbwDescriptorPool* pool,
const char* filename);
89 const PbwMethodDescriptor*
90 pbw_DescriptorPool_FindMethodByName(
const PbwDescriptorPool* pool,
const char* name);
94 pbw_MethodDescriptor_name(
const PbwMethodDescriptor* method);
98 pbw_MethodDescriptor_full_name(
const PbwMethodDescriptor* method);
102 pbw_MethodDescriptor_input_type(
const PbwMethodDescriptor* method);
106 pbw_MethodDescriptor_output_type(
const PbwMethodDescriptor* method);
110 pbw_DescriptorPool_FindMessageTypeByName(
const PbwDescriptorPool* pool,
const char* name);
114 pbw_Descriptor_name(
const PbwDescriptor* message);
118 pbw_Descriptor_full_name(
const PbwDescriptor* message);
122 pbw_Descriptor_field_count(
const PbwDescriptor* message);
125 const PbwFieldDescriptor*
126 pbw_Descriptor_field(
const PbwDescriptor* message,
int field_index);
129 const PbwFieldDescriptor*
130 pbw_Descriptor_FindFieldByNumber(
const PbwDescriptor* message,
int number);
133 const PbwFieldDescriptor*
134 pbw_Descriptor_FindFieldByName(
const PbwDescriptor* message,
const char* name);
138 pbw_FieldDescriptor_full_name(
const PbwFieldDescriptor* field);
142 pbw_FieldDescriptor_name(
const PbwFieldDescriptor* field);
146 pbw_FieldDescriptor_number(
const PbwFieldDescriptor* field);
150 pbw_FieldDescriptor_type(
const PbwFieldDescriptor* field);
154 pbw_FieldDescriptor_is_repeated(
const PbwFieldDescriptor* field);
158 pbw_FieldDescriptor_is_packed(
const PbwFieldDescriptor* field);
162 pbw_FieldDescriptor_typeName(
int field_type);
166 pbw_FieldDescriptor_message_type(
const PbwFieldDescriptor* field);
169 const PbwEnumDescriptor*
170 pbw_FieldDescriptor_enum_type(
const PbwFieldDescriptor* field);
174 pbw_FieldDescriptor_is_required(
const PbwFieldDescriptor* field);
179 pbw_FieldDescriptor_has_default_value(
const PbwFieldDescriptor* field);
183 pbw_FieldDescriptor_default_value_int32(
const PbwFieldDescriptor* field);
187 pbw_FieldDescriptor_default_value_int64(
const PbwFieldDescriptor* field);
191 pbw_FieldDescriptor_default_value_uint32(
const PbwFieldDescriptor* field);
195 pbw_FieldDescriptor_default_value_uint64(
const PbwFieldDescriptor* field);
199 pbw_FieldDescriptor_default_value_float(
const PbwFieldDescriptor* field);
203 pbw_FieldDescriptor_default_value_double(
const PbwFieldDescriptor* field);
207 pbw_FieldDescriptor_default_value_bool(
const PbwFieldDescriptor* field);
211 pbw_FieldDescriptor_default_value_string(
const PbwFieldDescriptor* field,
int* size);
214 const PbwEnumValueDescriptor*
215 pbw_FieldDescriptor_default_value_enum(
const PbwFieldDescriptor* field);
219 pbw_EnumDescriptor_name(
const PbwEnumDescriptor* anEnum);
223 pbw_EnumDescriptor_full_name(
const PbwEnumDescriptor* anEnum);
227 pbw_EnumDescriptor_value_count(
const PbwEnumDescriptor* anEnum);
230 const PbwEnumValueDescriptor*
231 pbw_EnumDescriptor_value(
const PbwEnumDescriptor* anEnum,
int value_index);
234 const PbwEnumValueDescriptor*
235 pbw_EnumDescriptor_FindValueByNumber(
const PbwEnumDescriptor* anEnum,
int number);
238 const PbwEnumValueDescriptor*
239 pbw_EnumDescriptor_FindValueByName(
const PbwEnumDescriptor* anEnum,
const gchar* name);
243 pbw_EnumValueDescriptor_name(
const PbwEnumValueDescriptor* enumValue);
247 pbw_EnumValueDescriptor_full_name(
const PbwEnumValueDescriptor* enumValue);
251 pbw_EnumValueDescriptor_number(
const PbwEnumValueDescriptor* enumValue);
255 pbw_foreach_message(
const PbwDescriptorPool* pool,
void (*cb)(
const PbwDescriptor* message,
void* userdata),
void* userdata);
void pbw_reinit_DescriptorPool(PbwDescriptorPool **pool, const char **directories, pbw_report_error_cb_t error_cb)
Definition: protobuf-helper.c:33