31 #ifndef __GOOGLE_PROTOBUF_RUBY_PROTOBUF_H__ 32 #define __GOOGLE_PROTOBUF_RUBY_PROTOBUF_H__ 34 #include <ruby/ruby.h> 36 #include <ruby/encoding.h> 291 #define NATIVE_SLOT_MAX_SIZE sizeof(uint64_t) 325 #define MAP_KEY_FIELD 1 326 #define MAP_VALUE_FIELD 2 331 #define ONEOF_CASE_NONE 0 406 extern const rb_data_type_t
Map_type;
422 VALUE
Map_eq(VALUE _self, VALUE _other);
425 VALUE
Map_merge(VALUE _self, VALUE hashmap);
443 #define MESSAGE_FIELD_NO_CASE ((size_t)-1) 515 #define ENCODE_MAX_NESTING 63 530 #define CHECK_UPB(code, msg) do { \ 531 upb_status status = UPB_STATUS_INIT; \ 533 check_upb_status(&status, msg); \ 538 #endif // __GOOGLE_PROTOBUF_RUBY_PROTOBUF_H__ void native_slot_set_value_and_case(upb_fieldtype_t type, VALUE type_class, void *memory, VALUE value, uint32_t *case_memory, uint32_t case_number)
Definition: storage.c:115
const upb_handlers * fill_handlers
Definition: protobuf.h:113
VALUE cOneofBuilderContext
VALUE Map_init(int argc, VALUE *argv, VALUE self)
Definition: map.c:215
VALUE Map_deep_copy(VALUE _self)
Definition: map.c:526
VALUE enumdesc
Definition: protobuf.h:149
VALUE RepeatedField_pop_one(VALUE _self)
Definition: repeated_field.c:250
VALUE Map_merge_into_self(VALUE _self, VALUE hashmap)
Definition: map.c:716
VALUE Message_dup(VALUE _self)
Definition: message.c:263
upb_fieldtype_t
Definition: upb.h:1435
const upb_handlers * json_serialize_handlers_preserve
Definition: protobuf.h:118
VALUE EnumDescriptor_name_set(VALUE _self, VALUE str)
Definition: defs.c:1064
bool Map_done(Map_iter *iter)
Definition: map.c:767
VALUE Descriptor_alloc(VALUE klass)
Definition: defs.c:274
void DescriptorPool_free(void *_self)
Definition: defs.c:102
#define size
Definition: float-mm.c:27
void OneofDescriptor_free(void *_self)
Definition: defs.c:892
VALUE FieldDescriptor_type(VALUE _self)
Definition: defs.c:674
void native_slot_validate_string_encoding(upb_fieldtype_t type, VALUE value)
Definition: storage.c:89
void EnumBuilderContext_mark(void *_self)
Definition: defs.c:1549
VALUE Map_values(VALUE _self)
Definition: map.c:325
zval * native_slot_get(upb_fieldtype_t type, const void *memory TSRMLS_DC)
Definition: storage.c:63
VALUE fieldtype_to_ruby(upb_fieldtype_t type)
Definition: defs.c:582
void RepeatedField_free(void *self)
Definition: repeated_field.c:590
int capacity
Definition: protobuf.h:352
const FieldDescriptor * field
Definition: parser_unittest.cc:2279
void free_layout(MessageLayout *layout)
Definition: storage.c:386
VALUE cError
Definition: protobuf.c:42
VALUE RepeatedField_plus(VALUE _self, VALUE list)
Definition: repeated_field.c:471
VALUE build_module_from_enumdesc(EnumDescriptor *enumdef)
Definition: message.c:534
VALUE descriptor
Definition: protobuf.h:139
void DescriptorPool_mark(void *_self)
Definition: defs.c:99
void EnumBuilderContext_register(VALUE module)
Definition: defs.c:1567
VALUE EnumDescriptor_lookup_name(VALUE _self, VALUE name)
Definition: defs.c:1098
void MessageBuilderContext_mark(void *_self)
Definition: defs.c:1176
VALUE RepeatedField_each(VALUE _self)
Definition: repeated_field.c:86
VALUE cEnumBuilderContext
VALUE Builder_add_message(VALUE _self, VALUE name)
Definition: defs.c:1664
VALUE FieldDescriptor_label(VALUE _self)
Definition: defs.c:705
void Builder_free(void *_self)
Definition: defs.c:1620
VALUE Message_alloc(VALUE klass)
Definition: message.c:55
VALUE Descriptor_each_oneof(VALUE _self)
Definition: defs.c:425
void layout_dup(MessageLayout *layout, void *to, void *from)
Definition: storage.c:728
VALUE MessageBuilderContext_required(int argc, VALUE *argv, VALUE _self)
Definition: defs.c:1291
VALUE Map_clear(VALUE _self)
Definition: map.c:453
unsigned int uint32_t
Definition: ptypes.h:105
Definition: protobuf.h:90
void OneofDescriptor_mark(void *_self)
Definition: defs.c:889
VALUE MessageBuilderContext_alloc(VALUE klass)
Definition: defs.c:1187
rb_encoding * kRubyString8bitEncoding
Definition: protobuf.c:68
void RepeatedField_reserve(RepeatedField *self, int new_size)
Definition: repeated_field.c:187
VALUE RepeatedField_hash(VALUE _self)
Definition: repeated_field.c:443
void layout_mark(MessageLayout *layout, void *storage)
Definition: storage.c:707
const upb_fielddef * map_field_key(const upb_fielddef *field)
Definition: storage.c:369
VALUE EnumDescriptor_enummodule(VALUE _self)
Definition: defs.c:1156
VALUE Google_Protobuf_deep_copy(VALUE self, VALUE obj)
Definition: message.c:569
VALUE Message_index_set(VALUE _self, VALUE field_name, VALUE value)
Definition: message.c:407
VALUE RepeatedField_index(int argc, VALUE *argv, VALUE _self)
Definition: repeated_field.c:108
Descriptor * ruby_to_Descriptor(VALUE value)
VALUE cMessageBuilderContext
void * RepeatedField_index_native(VALUE _self, int index)
Definition: repeated_field.c:240
VALUE RepeatedField_clear(VALUE _self)
Definition: repeated_field.c:291
upb_fieldtype_t value_type
Definition: protobuf.h:395
VALUE RepeatedField_push(VALUE _self, VALUE val)
Definition: repeated_field.c:212
const Descriptor * descriptor
Definition: descriptor.cc:271
const upb_handlers * json_serialize_handlers
Definition: protobuf.h:117
void native_slot_deep_copy(upb_fieldtype_t type, void *to, void *from)
Definition: storage.c:310
void Map_free(void *self)
Definition: map.c:162
VALUE Descriptor_each(VALUE _self)
Definition: defs.c:343
VALUE MessageBuilderContext_oneof(VALUE _self, VALUE name)
Definition: defs.c:1448
EnumDescriptor * ruby_to_EnumDescriptor(VALUE value)
VALUE DescriptorPool_generated_pool(VALUE _self)
Definition: defs.c:218
VALUE layout_inspect(MessageLayout *layout, void *storage)
Definition: storage.c:840
VALUE RepeatedField_inspect(VALUE _self)
Definition: protobuf.h:174
void Descriptor_mark(void *_self)
Definition: defs.c:228
VALUE RepeatedField_init(int argc, VALUE *argv, VALUE self)
Definition: repeated_field.c:617
VALUE EnumBuilderContext_alloc(VALUE klass)
Definition: defs.c:1559
void Message_free(void *self)
Definition: message.c:46
VALUE RepeatedField_deep_copy(VALUE _self)
Definition: repeated_field.c:348
VALUE FieldDescriptor_set(VALUE _self, VALUE msg_rb, VALUE value)
Definition: defs.c:872
VALUE FieldDescriptor_submsg_name_set(VALUE _self, VALUE value)
Definition: defs.c:812
VALUE EnumBuilderContext_initialize(VALUE _self, VALUE enumdesc)
Definition: defs.c:1585
upb_strtable table
Definition: protobuf.h:397
void layout_init(MessageLayout *layout, void *storage)
Definition: storage.c:457
void Builder_mark(void *_self)
Definition: defs.c:1615
EGLenum EGLObjectKHR EGLLabelKHR label
Definition: eglext.h:121
void * Message_data(void *msg)
Definition: message.c:37
OPENSSL_EXPORT const ASN1_OBJECT * obj
Definition: x509.h:1053
const upb_pbdecodermethod * fill_method
Definition: protobuf.h:114
upb_symtab * symtab
Definition: protobuf.h:66
VALUE Builder_finalize_to_pool(VALUE _self, VALUE pool_rb)
Definition: defs.c:1734
VALUE OneofDescriptor_alloc(VALUE klass)
Definition: defs.c:905
ID descriptor_instancevar_interned
Definition: protobuf.c:77
VALUE RepeatedField_alloc(VALUE klass)
Definition: repeated_field.c:607
VALUE Builder_alloc(VALUE klass)
Definition: defs.c:1634
VALUE RepeatedField_to_ary(VALUE _self)
Definition: repeated_field.c:373
VALUE Message_eq(VALUE _self, VALUE _other)
Definition: message.c:305
MessageLayout * create_layout(const upb_msgdef *msgdef)
Definition: storage.c:293
VALUE layout_eq(MessageLayout *layout, void *msg1, void *msg2)
Definition: storage.c:784
Definition: protobuf.h:152
VALUE Map_delete(VALUE _self, VALUE key)
Definition: map.c:430
VALUE FieldDescriptor_name(VALUE _self)
Definition: defs.c:533
VALUE FieldDescriptor_subtype(VALUE _self)
Definition: defs.c:833
void Message_mark(void *self)
Definition: message.c:41
OneofDescriptor * ruby_to_OneofDescriptor(VALUE value)
EnumBuilderContext * ruby_to_EnumBuilderContext(VALUE value)
VALUE FieldDescriptor_number_set(VALUE _self, VALUE number)
Definition: defs.c:777
Definition: protobuf.h:85
void EnumDescriptor_free(void *_self)
Definition: defs.c:1008
EGLStreamKHR EGLint EGLint offset
Definition: eglext.h:984
VALUE FieldDescriptor_submsg_name(VALUE _self)
Definition: defs.c:794
VALUE Map_inspect(VALUE _self)
Definition: map.c:661
Definition: protobuf.h:393
VALUE enum_resolve(VALUE self, VALUE sym)
Definition: message.c:509
Definition: protobuf.h:347
upb_fieldtype_t field_type
Definition: protobuf.h:348
RepeatedField * ruby_to_RepeatedField(VALUE value)
Definition: repeated_field.c:44
upb_def ** defs
Definition: protobuf.h:154
VALUE klass
Definition: protobuf.h:112
VALUE EnumDescriptor_name(VALUE _self)
Definition: defs.c:1052
VALUE FieldDescriptor_alloc(VALUE klass)
Definition: defs.c:497
void MessageBuilderContext_register(VALUE module)
Definition: defs.c:1196
VALUE layout_hash(MessageLayout *layout, void *storage)
Definition: storage.c:824
VALUE Map_iter_key(Map_iter *iter)
Definition: map.c:771
VALUE Map_each(VALUE _self)
Definition: map.c:272
GLuint index
Definition: gl2.h:383
VALUE EnumDescriptor_add_value(VALUE _self, VALUE name, VALUE number)
Definition: defs.c:1081
EGLAttrib * value
Definition: eglext.h:120
VALUE Map_length(VALUE _self)
Definition: map.c:471
void native_slot_set(upb_fieldtype_t type, VALUE type_class, void *memory, VALUE value)
Definition: storage.c:110
DescriptorPool * ruby_to_DescriptorPool(VALUE value)
VALUE Map_merge(VALUE _self, VALUE hashmap)
Definition: map.c:705
VALUE Descriptor_lookup_oneof(VALUE _self, VALUE name)
Definition: defs.c:446
void layout_deep_copy(MessageLayout *layout, void *to, void *from)
Definition: storage.c:755
VALUE OneofDescriptor_name_set(VALUE _self, VALUE value)
Definition: defs.c:943
OneofBuilderContext * ruby_to_OneofBuilderContext(VALUE value)
VALUE OneofDescriptor_add_field(VALUE _self, VALUE field)
Definition: defs.c:966
VALUE Map_index_set(VALUE _self, VALUE key, VALUE value)
Definition: map.c:378
void validate_type_class(upb_fieldtype_t type, VALUE klass)
Definition: repeated_field.c:514
VALUE Map_iter_value(Map_iter *iter)
Definition: map.c:778
VALUE Message_deep_copy(VALUE _self)
Definition: message.c:280
VALUE RepeatedField_length(VALUE _self)
Definition: repeated_field.c:303
const rb_data_type_t _Descriptor_type
void FieldDescriptor_mark(void *_self)
Definition: defs.c:481
VALUE DescriptorPool_build(VALUE _self)
Definition: defs.c:184
Definition: protobuf.h:64
VALUE Message_decode(VALUE klass, VALUE data)
Definition: encode_decode.c:699
VALUE DescriptorPool_lookup(VALUE _self, VALUE name)
Definition: defs.c:199
EGLImageKHR EGLint * name
Definition: eglext.h:851
const rb_data_type_t _EnumDescriptor_type
VALUE EnumDescriptor_alloc(VALUE klass)
Definition: defs.c:1022
void Map_begin(VALUE _self, Map_iter *iter)
Definition: map.c:757
VALUE FieldDescriptor_name_set(VALUE _self, VALUE str)
Definition: defs.c:545
void RepeatedField_push_native(VALUE _self, void *data)
Definition: repeated_field.c:228
VALUE EnumBuilderContext_value(VALUE _self, VALUE name, VALUE number)
Definition: defs.c:1604
const char * argv[]
Definition: DumpRenderTree.cpp:1631
VALUE Message_initialize(int argc, VALUE *argv, VALUE _self)
Definition: message.c:239
void OneofBuilderContext_register(VALUE module)
Definition: defs.c:1489
VALUE Map_index(VALUE _self, VALUE key)
Definition: map.c:353
zval * get_def_obj(const void *def)
Definition: protobuf.c:23
VALUE RepeatedField_eq(VALUE _self, VALUE _other)
Definition: repeated_field.c:401
VALUE OneofBuilderContext_alloc(VALUE klass)
Definition: defs.c:1480
const upb_fielddef * map_field_value(const upb_fielddef *field)
Definition: storage.c:374
Definition: protobuf.h:133
FieldDescriptor * ruby_to_FieldDescriptor(VALUE value)
VALUE MessageBuilderContext_initialize(VALUE _self, VALUE descriptor, VALUE builder)
Definition: defs.c:1219
const zend_class_entry * build_class_from_descriptor(zval *php_descriptor TSRMLS_DC)
Definition: message.c:240
VALUE DescriptorPool_alloc(VALUE klass)
Definition: defs.c:114
VALUE Map_dup(VALUE _self)
Definition: map.c:498
Definition: protobuf.h:428
VALUE Descriptor_lookup(VALUE _self, VALUE name)
Definition: defs.c:364
void FieldDescriptor_free(void *_self)
Definition: defs.c:484
VALUE Message_method_missing(int argc, VALUE *argv, VALUE _self)
Definition: message.c:126
VALUE cRepeatedField
Definition: repeated_field.c:42
void OneofBuilderContext_mark(void *_self)
Definition: defs.c:1469
EGLenum type
Definition: eglext.h:63
VALUE Descriptor_msgclass(VALUE _self)
Definition: defs.c:463
EGLStreamKHR EGLint EGLint EGLint const void * data
Definition: eglext.h:984
void native_slot_check_int_range_precision(upb_fieldtype_t type, VALUE value)
Definition: storage.c:66
void Map_mark(void *self)
Definition: map.c:143
void FieldDescriptor_register(VALUE module)
Definition: defs.c:506
VALUE Message_descriptor(VALUE klass)
Definition: message.c:427
str
Definition: make-dist.py:305
void Map_register(VALUE module)
Definition: map.c:786
void Map_next(Map_iter *iter)
Definition: map.c:763
void * elements
Definition: protobuf.h:350
void layout_set(MessageLayout *layout, void *storage, const upb_fielddef *field, VALUE val)
Definition: storage.c:606
void check_upb_status(const upb_status *status, const char *msg)
Definition: def.c:7
VALUE MessageBuilderContext_repeated(int argc, VALUE *argv, VALUE _self)
Definition: defs.c:1316
VALUE descriptor
Definition: protobuf.h:144
VALUE module
Definition: protobuf.h:135
void OneofDescriptor_register(VALUE module)
Definition: defs.c:912
VALUE Message_index(VALUE _self, VALUE field_name)
Definition: message.c:388
Definition: protobuf.h:138
upb_fieldtype_t key_type
Definition: protobuf.h:394
VALUE pending_list
Definition: protobuf.h:153
rb_encoding * kRubyStringASCIIEncoding
Definition: protobuf.c:67
void add_def_obj(const void *def, zval *value)
Definition: protobuf.c:14
void Descriptor_register(VALUE module)
Definition: defs.c:290
const upb_pbdecodermethod * new_fillmsg_decodermethod(Descriptor *descriptor, const void *owner)
Definition: encode_decode.c:626
upb_fieldtype_t ruby_to_fieldtype(VALUE type)
Definition: defs.c:554
VALUE Message_encode_json(int argc, VALUE *argv, VALUE klass)
Definition: encode_decode.c:1189
Definition: protobuf.h:168
VALUE Descriptor_add_oneof(VALUE _self, VALUE obj)
Definition: defs.c:406
VALUE Message_hash(VALUE _self)
Definition: message.c:326
VALUE Map_hash(VALUE _self)
Definition: map.c:627
VALUE enum_lookup(VALUE self, VALUE number)
Definition: message.c:489
VALUE RepeatedField_insert(int argc, VALUE *argv, VALUE _self)
void MessageBuilderContext_free(void *_self)
Definition: defs.c:1182
VALUE Descriptor_add_field(VALUE _self, VALUE obj)
Definition: defs.c:383
Map * ruby_to_Map(VALUE value)
Definition: map.c:137
VALUE FieldDescriptor_label_set(VALUE _self, VALUE label)
Definition: defs.c:728
VALUE MessageBuilderContext_map(int argc, VALUE *argv, VALUE _self)
Definition: defs.c:1344
VALUE Map_keys(VALUE _self)
Definition: map.c:301
VALUE builder
Definition: protobuf.h:140
VALUE field_type_class(const upb_fielddef *field)
Definition: storage.c:503
VALUE OneofBuilderContext_optional(int argc, VALUE *argv, VALUE _self)
Definition: defs.c:1526
void RepeatedField_register(VALUE module)
Definition: repeated_field.c:622
void Descriptor_free(void *_self)
Definition: defs.c:234
VALUE Message_inspect(VALUE _self)
Definition: message.c:341
VALUE cMap
Definition: map.c:135
void native_slot_dup(upb_fieldtype_t type, void *to, void *from)
Definition: storage.c:306
void Builder_register(VALUE module)
Definition: defs.c:1643
VALUE FieldDescriptor_type_set(VALUE _self, VALUE type)
Definition: defs.c:689
bool is_map_field(const upb_fielddef *field)
Definition: storage.c:280
VALUE DescriptorPool_add(VALUE _self, VALUE def)
Definition: defs.c:160
const rb_data_type_t RepeatedField_type
Definition: repeated_field.c:37
void DescriptorPool_register(VALUE module)
Definition: defs.c:120
VALUE Descriptor_name(VALUE _self)
Definition: defs.c:315
VALUE EnumDescriptor_each(VALUE _self)
Definition: defs.c:1134
void RepeatedField_mark(void *self)
Definition: repeated_field.c:579
void EnumDescriptor_register(VALUE module)
Definition: defs.c:1030
VALUE RepeatedField_dup(VALUE _self)
Definition: repeated_field.c:329
const upb_fielddef * map_entry_key(const upb_msgdef *msgdef)
Definition: storage.c:379
rb_encoding * kRubyStringUtf8Encoding
Definition: protobuf.c:66
VALUE OneofBuilderContext_initialize(VALUE _self, VALUE descriptor, VALUE builder)
Definition: defs.c:1508
VALUE OneofDescriptor_name(VALUE _self)
Definition: defs.c:931
VALUE Message_encode(VALUE klass, VALUE msg_rb)
Definition: encode_decode.c:1154
CFArrayRef CFTypeRef key
Definition: AVFoundationCFSoftLinking.h:129
VALUE OneofDescriptor_each(VALUE _self, VALUE field)
Definition: defs.c:984
const rb_data_type_t Map_type
Definition: map.c:130
VALUE FieldDescriptor_get(VALUE _self, VALUE msg_rb)
Definition: defs.c:854
void EnumBuilderContext_free(void *_self)
Definition: defs.c:1554
VALUE typeclass_references
Definition: protobuf.h:122
rb_data_type_t Message_type
Definition: message.c:50
VALUE RepeatedField_replace(VALUE _self, VALUE list)
Definition: repeated_field.c:275
GLuint GLsizei GLsizei GLfloat * val
Definition: gl2ext.h:3301
VALUE FieldDescriptor_number(VALUE _self)
Definition: defs.c:765
void OneofBuilderContext_free(void *_self)
Definition: defs.c:1475
Builder * ruby_to_Builder(VALUE value)
VALUE Map_alloc(VALUE klass)
Definition: map.c:168
size_t native_slot_size(upb_fieldtype_t type)
Definition: storage.c:19
const upb_fielddef * map_entry_value(const upb_msgdef *msgdef)
Definition: storage.c:385
VALUE Map_has_key(VALUE _self, VALUE key)
Definition: map.c:408
VALUE MessageBuilderContext_optional(int argc, VALUE *argv, VALUE _self)
Definition: defs.c:1262
int size
Definition: protobuf.h:351
void native_slot_mark(upb_fieldtype_t type, void *memory)
Definition: storage.c:294
const upb_json_parsermethod * json_fill_method
Definition: protobuf.h:115
VALUE builder
Definition: protobuf.h:145
VALUE Builder_add_enum(VALUE _self, VALUE name)
Definition: defs.c:1686
zval * layout_get(MessageLayout *layout, const void *storage, const upb_fielddef *field TSRMLS_DC)
Definition: storage.c:515
VALUE Message_decode_json(VALUE klass, VALUE data)
Definition: encode_decode.c:740
VALUE EnumDescriptor_lookup_value(VALUE _self, VALUE number)
Definition: defs.c:1116
VALUE cParseError
Definition: protobuf.c:43
VALUE value_type_class
Definition: protobuf.h:396
Definition: protobuf.h:70
bool native_slot_eq(upb_fieldtype_t type, void *mem1, void *mem2)
Definition: storage.c:330
Definition: protobuf.h:95
VALUE Descriptor_name_set(VALUE _self, VALUE str)
Definition: defs.c:327
void native_slot_init(upb_fieldtype_t type, void *memory)
Definition: storage.c:101
VALUE field_type_class
Definition: protobuf.h:349
upb_strtable_iter it
Definition: protobuf.h:430
VALUE RepeatedField_index_set(VALUE _self, VALUE _index, VALUE val)
Definition: repeated_field.c:158
VALUE Map_eq(VALUE _self, VALUE _other)
Definition: map.c:566
MessageBuilderContext * ruby_to_MessageBuilderContext(VALUE value)
void EnumDescriptor_mark(void *_self)
Definition: defs.c:1003
Definition: protobuf.h:162