32 #include <Zend/zend_exceptions.h>
36 #if PHP_MAJOR_VERSION < 7
37 #include <Zend/zend_compile.h>
39 #include <Zend/zend_inheritance.h>
51 PHP_ME(Message, clear,
NULL, ZEND_ACC_PUBLIC)
52 PHP_ME(Message, discardUnknownFields,
NULL, ZEND_ACC_PUBLIC)
53 PHP_ME(Message, serializeToString,
NULL, ZEND_ACC_PUBLIC)
54 PHP_ME(Message, mergeFromString,
NULL, ZEND_ACC_PUBLIC)
55 PHP_ME(Message, serializeToJsonString,
NULL, ZEND_ACC_PUBLIC)
56 PHP_ME(Message, mergeFromJsonString,
NULL, ZEND_ACC_PUBLIC)
57 PHP_ME(Message, mergeFrom,
NULL, ZEND_ACC_PUBLIC)
58 PHP_ME(Message, readOneof,
NULL, ZEND_ACC_PROTECTED)
59 PHP_ME(Message, writeOneof,
NULL, ZEND_ACC_PROTECTED)
60 PHP_ME(Message, whichOneof,
NULL, ZEND_ACC_PROTECTED)
61 PHP_ME(Message, __construct,
NULL, ZEND_ACC_PROTECTED)
67 #if PHP_MAJOR_VERSION < 7
71 const zend_literal*
key TSRMLS_DC);
79 void** cache_slot, zval* rv);
122 static
void message_set_property_internal(zval*
object, zval* member,
123 zval*
value TSRMLS_DC) {
130 zend_error(E_USER_ERROR,
"Unknown field: %s", Z_STRVAL_P(member));
136 #if PHP_MAJOR_VERSION < 7
143 if (Z_TYPE_P(member) != IS_STRING) {
144 zend_error(E_USER_ERROR,
"Unexpected type for field name");
148 #if PHP_MAJOR_VERSION < 7 || (PHP_MAJOR_VERSION == 7 && PHP_MINOR_VERSION == 0)
149 if (Z_OBJCE_P(
object) != EG(scope)) {
151 if (Z_OBJCE_P(
object) != zend_get_executed_scope()) {
154 zend_error(E_USER_ERROR,
"Cannot access private property.");
158 message_set_property_internal(
object, member,
value TSRMLS_CC);
162 zval* member TSRMLS_DC) {
170 zend_property_info* property_info;
171 #if PHP_MAJOR_VERSION < 7
173 zend_get_property_info(Z_OBJCE_P(
object), member,
true TSRMLS_CC);
176 zend_get_property_info(Z_OBJCE_P(
object), Z_STR_P(member),
true);
184 zval* return_value TSRMLS_DC) {
196 #if PHP_MAJOR_VERSION < 7
198 const zend_literal*
key TSRMLS_DC) {
201 void** cache_slot, zval* rv) {
203 if (Z_TYPE_P(member) != IS_STRING) {
204 zend_error(E_USER_ERROR,
"Property name has to be a string.");
208 #if PHP_MAJOR_VERSION < 7 || (PHP_MAJOR_VERSION == 7 && PHP_MINOR_VERSION == 0)
209 if (Z_OBJCE_P(
object) != EG(scope)) {
211 if (Z_OBJCE_P(
object) != zend_get_executed_scope()) {
214 zend_error(E_USER_ERROR,
"Cannot access private property.");
221 #if PHP_MAJOR_VERSION < 7
238 zend_object* zobj =
Z_OBJ_P(
object);
239 *
table = zobj->properties_table;
240 *
n = zobj->ce->default_properties_count;
264 #define INIT_MESSAGE_WITH_ARRAY \
266 zval* array_wrapper = NULL; \
267 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \
268 "|a!", &array_wrapper) == FAILURE) { \
271 Message_construct(getThis(), array_wrapper); \
283 zend_class_entry* registered_ce =
desc->klass;
290 registered_ce->create_object = message_create;
307 #if PHP_MAJOR_VERSION < 7
310 ZVAL_OBJ(
val, subklass->create_object(subklass TSRMLS_CC));
314 zend_object*
obj = subklass->create_object(subklass TSRMLS_CC);
325 zend_class_entry* subklass, zval*
map, zval*
key, zval*
value TSRMLS_DC) {
328 #if PHP_MAJOR_VERSION < 7
331 ZVAL_OBJ(
val, subklass->create_object(subklass TSRMLS_CC));
337 zend_object*
obj = subklass->create_object(subklass TSRMLS_CC);
350 zend_class_entry* ce = Z_OBJCE_P(msg);
357 if (array_wrapper ==
NULL) {
361 HashTable*
array = Z_ARRVAL_P(array_wrapper);
367 for (zend_hash_internal_pointer_reset_ex(
array, &
pointer);
373 #if PHP_MAJOR_VERSION >= 7
379 zend_error(E_USER_ERROR,
"Unknown field: %s", Z_STRVAL_P(&
key));
385 HashTable* subtable = HASH_OF(
387 HashPosition subpointer;
390 bool is_wrapper =
false;
391 zend_class_entry* subklass =
NULL;
403 subklass = subdesc->
klass;
407 for (zend_hash_internal_pointer_reset_ex(subtable, &subpointer);
409 &subpointer) == SUCCESS;
410 zend_hash_move_forward_ex(subtable, &subpointer)) {
411 zend_hash_get_current_key_zval_ex(subtable, &subkey, &subpointer);
415 subklass, submap, &subkey,
428 HashTable* subtable = HASH_OF(
430 HashPosition subpointer;
432 bool is_wrapper =
false;
433 zend_class_entry* subklass =
NULL;
443 subklass = subdesc->
klass;
447 for (zend_hash_internal_pointer_reset_ex(subtable, &subpointer);
449 &subpointer) == SUCCESS;
450 zend_hash_move_forward_ex(subtable, &subpointer)) {
474 int property_cache_index =
481 zend_property_info* property_info;
483 #if PHP_MAJOR_VERSION < 7
485 zend_get_property_info(Z_OBJCE_P(msg), &
key,
true TSRMLS_CC);
488 zend_get_property_info(Z_OBJCE_P(msg), Z_STR_P(&
key),
true);
493 #if PHP_MAJOR_VERSION < 7
494 SEPARATE_ZVAL_IF_NOT_REF(cached);
512 zend_error(E_USER_ERROR,
513 "Cannot merge messages with different class.");
520 message_set_property_internal(msg, &
key,
537 zend_class_entry* ce =
desc->klass;
539 zend_object_std_dtor(&msg->std TSRMLS_CC);
540 object_properties_init(&msg->std, ce);
547 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"O", &
value,
556 zend_error(E_USER_ERROR,
"Cannot merge messages with different class.");
566 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"l", &
index) ==
585 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"lz", &
index, &
value) ==
601 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s", &
oneof_name,
619 #define PHP_PROTO_FIELD_ACCESSORS(UPPER_CLASS, LOWER_CLASS, UPPER_FIELD, \
621 PHP_METHOD(UPPER_CLASS, get##UPPER_FIELD) { \
623 PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
624 PHP_PROTO_FAKE_SCOPE_BEGIN(LOWER_CLASS##_type); \
625 zval* value = message_get_property_internal(getThis(), &member TSRMLS_CC); \
626 PHP_PROTO_FAKE_SCOPE_END; \
627 zval_dtor(&member); \
628 PHP_PROTO_RETVAL_ZVAL(value); \
630 PHP_METHOD(UPPER_CLASS, set##UPPER_FIELD) { \
631 zval* value = NULL; \
632 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &value) == \
637 PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
638 message_set_property_internal(getThis(), &member, value TSRMLS_CC); \
639 zval_dtor(&member); \
640 PHP_PROTO_RETVAL_ZVAL(getThis()); \
643 #define PHP_PROTO_ONEOF_FIELD_ACCESSORS(UPPER_CLASS, LOWER_CLASS, UPPER_FIELD, \
645 PHP_METHOD(UPPER_CLASS, get##UPPER_FIELD) { \
647 PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
648 PHP_PROTO_FAKE_SCOPE_BEGIN(LOWER_CLASS##_type); \
649 message_get_oneof_property_internal(getThis(), &member, \
650 return_value TSRMLS_CC); \
651 PHP_PROTO_FAKE_SCOPE_END; \
652 zval_dtor(&member); \
654 PHP_METHOD(UPPER_CLASS, set##UPPER_FIELD) { \
655 zval* value = NULL; \
656 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &value) == \
661 PHP_PROTO_ZVAL_STRING(&member, LOWER_FIELD, 1); \
662 message_set_property_internal(getThis(), &member, value TSRMLS_CC); \
663 zval_dtor(&member); \
664 PHP_PROTO_RETVAL_ZVAL(getThis()); \
667 #define PHP_PROTO_ONEOF_ACCESSORS(UPPER_CLASS, LOWER_CLASS, UPPER_FIELD, \
669 PHP_METHOD(UPPER_CLASS, get##UPPER_FIELD) { \
670 MessageHeader* msg = UNBOX(MessageHeader, getThis()); \
671 PHP_PROTO_FAKE_SCOPE_BEGIN(LOWER_CLASS##_type); \
672 const upb_oneofdef* oneof = upb_msgdef_ntoo( \
673 msg->descriptor->msgdef, LOWER_FIELD, strlen(LOWER_FIELD)); \
674 const char* oneof_case_name = layout_get_oneof_case( \
675 msg->descriptor->layout, message_data(msg), oneof TSRMLS_CC); \
676 PHP_PROTO_FAKE_SCOPE_END; \
677 PHP_PROTO_RETURN_STRING(oneof_case_name, 1); \
696 const char* generated_file =
697 "0acd010a19676f6f676c652f70726f746f6275662f616e792e70726f746f"
698 "120f676f6f676c652e70726f746f62756622260a03416e7912100a087479"
699 "70655f75726c180120012809120d0a0576616c756518022001280c426f0a"
700 "13636f6d2e676f6f676c652e70726f746f6275664208416e7950726f746f"
701 "50015a256769746875622e636f6d2f676f6c616e672f70726f746f627566"
702 "2f7074797065732f616e79a20203475042aa021e476f6f676c652e50726f"
703 "746f6275662e57656c6c4b6e6f776e5479706573620670726f746f33";
718 const char* generated_file =
719 "0aee050a19676f6f676c652f70726f746f6275662f6170692e70726f746f"
720 "120f676f6f676c652e70726f746f6275661a24676f6f676c652f70726f74"
721 "6f6275662f736f757263655f636f6e746578742e70726f746f1a1a676f6f"
722 "676c652f70726f746f6275662f747970652e70726f746f2281020a034170"
723 "69120c0a046e616d6518012001280912280a076d6574686f647318022003"
724 "280b32172e676f6f676c652e70726f746f6275662e4d6574686f6412280a"
725 "076f7074696f6e7318032003280b32172e676f6f676c652e70726f746f62"
726 "75662e4f7074696f6e120f0a0776657273696f6e18042001280912360a0e"
727 "736f757263655f636f6e7465787418052001280b321e2e676f6f676c652e"
728 "70726f746f6275662e536f75726365436f6e7465787412260a066d697869"
729 "6e7318062003280b32162e676f6f676c652e70726f746f6275662e4d6978"
730 "696e12270a0673796e74617818072001280e32172e676f6f676c652e7072"
731 "6f746f6275662e53796e74617822d5010a064d6574686f64120c0a046e61"
732 "6d6518012001280912180a10726571756573745f747970655f75726c1802"
733 "2001280912190a11726571756573745f73747265616d696e671803200128"
734 "0812190a11726573706f6e73655f747970655f75726c180420012809121a"
735 "0a12726573706f6e73655f73747265616d696e6718052001280812280a07"
736 "6f7074696f6e7318062003280b32172e676f6f676c652e70726f746f6275"
737 "662e4f7074696f6e12270a0673796e74617818072001280e32172e676f6f"
738 "676c652e70726f746f6275662e53796e74617822230a054d6978696e120c"
739 "0a046e616d65180120012809120c0a04726f6f7418022001280942750a13"
740 "636f6d2e676f6f676c652e70726f746f627566420841706950726f746f50"
741 "015a2b676f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f"
742 "70726f746f6275662f6170693b617069a20203475042aa021e476f6f676c"
743 "652e50726f746f6275662e57656c6c4b6e6f776e5479706573620670726f"
757 const char* generated_file =
758 "0ae3010a1e676f6f676c652f70726f746f6275662f6475726174696f6e2e"
759 "70726f746f120f676f6f676c652e70726f746f627566222a0a0844757261"
760 "74696f6e120f0a077365636f6e6473180120012803120d0a056e616e6f73"
761 "180220012805427c0a13636f6d2e676f6f676c652e70726f746f62756642"
762 "0d4475726174696f6e50726f746f50015a2a6769746875622e636f6d2f67"
763 "6f6c616e672f70726f746f6275662f7074797065732f6475726174696f6e"
764 "f80101a20203475042aa021e476f6f676c652e50726f746f6275662e5765"
765 "6c6c4b6e6f776e5479706573620670726f746f33";
778 const char* generated_file =
779 "0ae3010a20676f6f676c652f70726f746f6275662f6669656c645f6d6173"
780 "6b2e70726f746f120f676f6f676c652e70726f746f627566221a0a094669"
781 "656c644d61736b120d0a0570617468731801200328094289010a13636f6d"
782 "2e676f6f676c652e70726f746f627566420e4669656c644d61736b50726f"
783 "746f50015a39676f6f676c652e676f6c616e672e6f72672f67656e70726f"
784 "746f2f70726f746f6275662f6669656c645f6d61736b3b6669656c645f6d"
785 "61736ba20203475042aa021e476f6f676c652e50726f746f6275662e5765"
786 "6c6c4b6e6f776e5479706573620670726f746f33";
799 const char* generated_file =
800 "0ab7010a1b676f6f676c652f70726f746f6275662f656d7074792e70726f"
801 "746f120f676f6f676c652e70726f746f62756622070a05456d7074794276"
802 "0a13636f6d2e676f6f676c652e70726f746f627566420a456d7074795072"
803 "6f746f50015a276769746875622e636f6d2f676f6c616e672f70726f746f"
804 "6275662f7074797065732f656d707479f80101a20203475042aa021e476f"
805 "6f676c652e50726f746f6275662e57656c6c4b6e6f776e54797065736206"
819 const char* generated_file =
820 "0afb010a24676f6f676c652f70726f746f6275662f736f757263655f636f"
821 "6e746578742e70726f746f120f676f6f676c652e70726f746f6275662222"
822 "0a0d536f75726365436f6e7465787412110a0966696c655f6e616d651801"
823 "200128094295010a13636f6d2e676f6f676c652e70726f746f6275664212"
824 "536f75726365436f6e7465787450726f746f50015a41676f6f676c652e67"
825 "6f6c616e672e6f72672f67656e70726f746f2f70726f746f6275662f736f"
826 "757263655f636f6e746578743b736f757263655f636f6e74657874a20203"
827 "475042aa021e476f6f676c652e50726f746f6275662e57656c6c4b6e6f77"
828 "6e5479706573620670726f746f33";
841 const char* generated_file =
842 "0a81050a1c676f6f676c652f70726f746f6275662f7374727563742e7072"
843 "6f746f120f676f6f676c652e70726f746f6275662284010a065374727563"
844 "7412330a066669656c647318012003280b32232e676f6f676c652e70726f"
845 "746f6275662e5374727563742e4669656c6473456e7472791a450a0b4669"
846 "656c6473456e747279120b0a036b657918012001280912250a0576616c75"
847 "6518022001280b32162e676f6f676c652e70726f746f6275662e56616c75"
848 "653a02380122ea010a0556616c756512300a0a6e756c6c5f76616c756518"
849 "012001280e321a2e676f6f676c652e70726f746f6275662e4e756c6c5661"
850 "6c7565480012160a0c6e756d6265725f76616c7565180220012801480012"
851 "160a0c737472696e675f76616c7565180320012809480012140a0a626f6f"
852 "6c5f76616c75651804200128084800122f0a0c7374727563745f76616c75"
853 "6518052001280b32172e676f6f676c652e70726f746f6275662e53747275"
854 "6374480012300a0a6c6973745f76616c756518062001280b321a2e676f6f"
855 "676c652e70726f746f6275662e4c69737456616c7565480042060a046b69"
856 "6e6422330a094c69737456616c756512260a0676616c7565731801200328"
857 "0b32162e676f6f676c652e70726f746f6275662e56616c75652a1b0a094e"
858 "756c6c56616c7565120e0a0a4e554c4c5f56414c554510004281010a1363"
859 "6f6d2e676f6f676c652e70726f746f627566420b53747275637450726f74"
860 "6f50015a316769746875622e636f6d2f676f6c616e672f70726f746f6275"
861 "662f7074797065732f7374727563743b7374727563747062f80101a20203"
862 "475042aa021e476f6f676c652e50726f746f6275662e57656c6c4b6e6f77"
863 "6e5479706573620670726f746f33";
876 const char* generated_file =
877 "0ae7010a1f676f6f676c652f70726f746f6275662f74696d657374616d70"
878 "2e70726f746f120f676f6f676c652e70726f746f627566222b0a0954696d"
879 "657374616d70120f0a077365636f6e6473180120012803120d0a056e616e"
880 "6f73180220012805427e0a13636f6d2e676f6f676c652e70726f746f6275"
881 "66420e54696d657374616d7050726f746f50015a2b6769746875622e636f"
882 "6d2f676f6c616e672f70726f746f6275662f7074797065732f74696d6573"
883 "74616d70f80101a20203475042aa021e476f6f676c652e50726f746f6275"
884 "662e57656c6c4b6e6f776e5479706573620670726f746f33";
899 const char* generated_file =
900 "0aba0c0a1a676f6f676c652f70726f746f6275662f747970652e70726f74"
901 "6f120f676f6f676c652e70726f746f6275661a19676f6f676c652f70726f"
902 "746f6275662f616e792e70726f746f1a24676f6f676c652f70726f746f62"
903 "75662f736f757263655f636f6e746578742e70726f746f22d7010a045479"
904 "7065120c0a046e616d6518012001280912260a066669656c647318022003"
905 "280b32162e676f6f676c652e70726f746f6275662e4669656c64120e0a06"
906 "6f6e656f667318032003280912280a076f7074696f6e7318042003280b32"
907 "172e676f6f676c652e70726f746f6275662e4f7074696f6e12360a0e736f"
908 "757263655f636f6e7465787418052001280b321e2e676f6f676c652e7072"
909 "6f746f6275662e536f75726365436f6e7465787412270a0673796e746178"
910 "18062001280e32172e676f6f676c652e70726f746f6275662e53796e7461"
911 "7822d5050a054669656c6412290a046b696e6418012001280e321b2e676f"
912 "6f676c652e70726f746f6275662e4669656c642e4b696e6412370a0b6361"
913 "7264696e616c69747918022001280e32222e676f6f676c652e70726f746f"
914 "6275662e4669656c642e43617264696e616c697479120e0a066e756d6265"
915 "72180320012805120c0a046e616d6518042001280912100a08747970655f"
916 "75726c18062001280912130a0b6f6e656f665f696e646578180720012805"
917 "120e0a067061636b656418082001280812280a076f7074696f6e73180920"
918 "03280b32172e676f6f676c652e70726f746f6275662e4f7074696f6e1211"
919 "0a096a736f6e5f6e616d65180a2001280912150a0d64656661756c745f76"
920 "616c7565180b2001280922c8020a044b696e6412100a0c545950455f554e"
921 "4b4e4f574e1000120f0a0b545950455f444f55424c451001120e0a0a5459"
922 "50455f464c4f41541002120e0a0a545950455f494e5436341003120f0a0b"
923 "545950455f55494e5436341004120e0a0a545950455f494e543332100512"
924 "100a0c545950455f46495845443634100612100a0c545950455f46495845"
925 "4433321007120d0a09545950455f424f4f4c1008120f0a0b545950455f53"
926 "5452494e471009120e0a0a545950455f47524f5550100a12100a0c545950"
927 "455f4d455353414745100b120e0a0a545950455f4259544553100c120f0a"
928 "0b545950455f55494e543332100d120d0a09545950455f454e554d100e12"
929 "110a0d545950455f5346495845443332100f12110a0d545950455f534649"
930 "58454436341010120f0a0b545950455f53494e5433321011120f0a0b5459"
931 "50455f53494e543634101222740a0b43617264696e616c69747912170a13"
932 "43415244494e414c4954595f554e4b4e4f574e100012180a144341524449"
933 "4e414c4954595f4f5054494f4e414c100112180a1443415244494e414c49"
934 "54595f5245515549524544100212180a1443415244494e414c4954595f52"
935 "45504541544544100322ce010a04456e756d120c0a046e616d6518012001"
936 "2809122d0a09656e756d76616c756518022003280b321a2e676f6f676c65"
937 "2e70726f746f6275662e456e756d56616c756512280a076f7074696f6e73"
938 "18032003280b32172e676f6f676c652e70726f746f6275662e4f7074696f"
939 "6e12360a0e736f757263655f636f6e7465787418042001280b321e2e676f"
940 "6f676c652e70726f746f6275662e536f75726365436f6e7465787412270a"
941 "0673796e74617818052001280e32172e676f6f676c652e70726f746f6275"
942 "662e53796e74617822530a09456e756d56616c7565120c0a046e616d6518"
943 "0120012809120e0a066e756d62657218022001280512280a076f7074696f"
944 "6e7318032003280b32172e676f6f676c652e70726f746f6275662e4f7074"
945 "696f6e223b0a064f7074696f6e120c0a046e616d6518012001280912230a"
946 "0576616c756518022001280b32142e676f6f676c652e70726f746f627566"
947 "2e416e792a2e0a0653796e74617812110a0d53594e5441585f50524f544f"
948 "32100012110a0d53594e5441585f50524f544f331001427d0a13636f6d2e"
949 "676f6f676c652e70726f746f62756642095479706550726f746f50015a2f"
950 "676f6f676c652e676f6c616e672e6f72672f67656e70726f746f2f70726f"
951 "746f6275662f70747970653b7074797065f80101a20203475042aa021e47"
952 "6f6f676c652e50726f746f6275662e57656c6c4b6e6f776e547970657362"
966 const char* generated_file =
967 "0abf030a1e676f6f676c652f70726f746f6275662f77726170706572732e"
968 "70726f746f120f676f6f676c652e70726f746f627566221c0a0b446f7562"
969 "6c6556616c7565120d0a0576616c7565180120012801221b0a0a466c6f61"
970 "7456616c7565120d0a0576616c7565180120012802221b0a0a496e743634"
971 "56616c7565120d0a0576616c7565180120012803221c0a0b55496e743634"
972 "56616c7565120d0a0576616c7565180120012804221b0a0a496e74333256"
973 "616c7565120d0a0576616c7565180120012805221c0a0b55496e74333256"
974 "616c7565120d0a0576616c756518012001280d221a0a09426f6f6c56616c"
975 "7565120d0a0576616c7565180120012808221c0a0b537472696e6756616c"
976 "7565120d0a0576616c7565180120012809221b0a0a427974657356616c75"
977 "65120d0a0576616c756518012001280c427c0a13636f6d2e676f6f676c65"
978 "2e70726f746f627566420d577261707065727350726f746f50015a2a6769"
979 "746875622e636f6d2f676f6c616e672f70726f746f6275662f7074797065"
980 "732f7772617070657273f80101a20203475042aa021e476f6f676c652e50"
981 "726f746f6275662e57656c6c4b6e6f776e5479706573620670726f746f33";
1011 "CARDINALITY_UNKNOWN", 19, 0 TSRMLS_CC);
1013 "CARDINALITY_OPTIONAL", 20, 1 TSRMLS_CC);
1015 "CARDINALITY_REQUIRED", 20, 2 TSRMLS_CC);
1017 "CARDINALITY_REPEATED", 20, 3 TSRMLS_CC);
1018 const char *alias =
"Google\\Protobuf\\Field_Cardinality";
1019 #if PHP_VERSION_ID < 70300
1028 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"l", &
value) ==
1042 zend_throw_exception_ex(
1044 "Enum Google\\Protobuf\\Field_Cardinality has no name "
1045 "defined for value %d.",
1054 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s", &
name, &
name_len) ==
1059 if (strncmp(
name,
"CARDINALITY_UNKNOWN",
name_len) == 0) RETURN_LONG(0);
1060 if (strncmp(
name,
"CARDINALITY_OPTIONAL",
name_len) == 0) RETURN_LONG(1);
1061 if (strncmp(
name,
"CARDINALITY_REQUIRED",
name_len) == 0) RETURN_LONG(2);
1062 if (strncmp(
name,
"CARDINALITY_REPEATED",
name_len) == 0) RETURN_LONG(3);
1064 zend_throw_exception_ex(
1066 "Enum Google\\Protobuf\\Field_Cardinality has no value "
1067 "defined for name %s.",
1087 "TYPE_UNKNOWN", 12, 0 TSRMLS_CC);
1089 "TYPE_DOUBLE", 11, 1 TSRMLS_CC);
1091 "TYPE_FLOAT", 10, 2 TSRMLS_CC);
1093 "TYPE_INT64", 10, 3 TSRMLS_CC);
1095 "TYPE_UINT64", 11, 4 TSRMLS_CC);
1097 "TYPE_INT32", 10, 5 TSRMLS_CC);
1099 "TYPE_FIXED64", 12, 6 TSRMLS_CC);
1101 "TYPE_FIXED32", 12, 7 TSRMLS_CC);
1103 "TYPE_BOOL", 9, 8 TSRMLS_CC);
1105 "TYPE_STRING", 11, 9 TSRMLS_CC);
1107 "TYPE_GROUP", 10, 10 TSRMLS_CC);
1109 "TYPE_MESSAGE", 12, 11 TSRMLS_CC);
1111 "TYPE_BYTES", 10, 12 TSRMLS_CC);
1113 "TYPE_UINT32", 11, 13 TSRMLS_CC);
1115 "TYPE_ENUM", 9, 14 TSRMLS_CC);
1117 "TYPE_SFIXED32", 13, 15 TSRMLS_CC);
1119 "TYPE_SFIXED64", 13, 16 TSRMLS_CC);
1121 "TYPE_SINT32", 11, 17 TSRMLS_CC);
1123 "TYPE_SINT64", 11, 18 TSRMLS_CC);
1124 const char *alias =
"Google\\Protobuf\\Field_Kind";
1125 #if PHP_VERSION_ID < 70300
1126 zend_register_class_alias_ex(alias, strlen(alias),
field_kind_type TSRMLS_CC);
1128 zend_register_class_alias_ex(alias, strlen(alias),
field_kind_type, 1);
1134 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"l", &
value) ==
1178 zend_throw_exception_ex(
NULL, 0 TSRMLS_CC,
1179 "Enum Google\\Protobuf\\Field_Kind has no name "
1180 "defined for value %d.",
1189 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s", &
name, &
name_len) ==
1194 if (strncmp(
name,
"TYPE_UNKNOWN",
name_len) == 0) RETURN_LONG(0);
1195 if (strncmp(
name,
"TYPE_DOUBLE",
name_len) == 0) RETURN_LONG(1);
1196 if (strncmp(
name,
"TYPE_FLOAT",
name_len) == 0) RETURN_LONG(2);
1197 if (strncmp(
name,
"TYPE_INT64",
name_len) == 0) RETURN_LONG(3);
1198 if (strncmp(
name,
"TYPE_UINT64",
name_len) == 0) RETURN_LONG(4);
1199 if (strncmp(
name,
"TYPE_INT32",
name_len) == 0) RETURN_LONG(5);
1200 if (strncmp(
name,
"TYPE_FIXED64",
name_len) == 0) RETURN_LONG(6);
1201 if (strncmp(
name,
"TYPE_FIXED32",
name_len) == 0) RETURN_LONG(7);
1202 if (strncmp(
name,
"TYPE_BOOL",
name_len) == 0) RETURN_LONG(8);
1203 if (strncmp(
name,
"TYPE_STRING",
name_len) == 0) RETURN_LONG(9);
1204 if (strncmp(
name,
"TYPE_GROUP",
name_len) == 0) RETURN_LONG(10);
1205 if (strncmp(
name,
"TYPE_MESSAGE",
name_len) == 0) RETURN_LONG(11);
1206 if (strncmp(
name,
"TYPE_BYTES",
name_len) == 0) RETURN_LONG(12);
1207 if (strncmp(
name,
"TYPE_UINT32",
name_len) == 0) RETURN_LONG(13);
1208 if (strncmp(
name,
"TYPE_ENUM",
name_len) == 0) RETURN_LONG(14);
1209 if (strncmp(
name,
"TYPE_SFIXED32",
name_len) == 0) RETURN_LONG(15);
1210 if (strncmp(
name,
"TYPE_SFIXED64",
name_len) == 0) RETURN_LONG(16);
1211 if (strncmp(
name,
"TYPE_SINT32",
name_len) == 0) RETURN_LONG(17);
1212 if (strncmp(
name,
"TYPE_SINT64",
name_len) == 0) RETURN_LONG(18);
1214 zend_throw_exception_ex(
NULL, 0 TSRMLS_CC,
1215 "Enum Google\\Protobuf\\Field_Kind has no value "
1216 "defined for name %s.",
1236 "NULL_VALUE", 10, 0 TSRMLS_CC);
1241 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"l", &
value) ==
1249 zend_throw_exception_ex(
NULL, 0 TSRMLS_CC,
1250 "Enum Google\\Protobuf\\NullValue has no name "
1251 "defined for value %d.",
1260 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s", &
name, &
name_len) ==
1265 if (strncmp(
name,
"NULL_VALUE",
name_len) == 0) RETURN_LONG(0);
1267 zend_throw_exception_ex(
NULL, 0 TSRMLS_CC,
1268 "Enum Google\\Protobuf\\NullValue has no value "
1269 "defined for name %s.",
1289 "SYNTAX_PROTO2", 13, 0 TSRMLS_CC);
1291 "SYNTAX_PROTO3", 13, 1 TSRMLS_CC);
1296 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"l", &
value) ==
1306 zend_throw_exception_ex(
NULL, 0 TSRMLS_CC,
1307 "Enum Google\\Protobuf\\Syntax has no name "
1308 "defined for value %d.",
1317 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"s", &
name, &
name_len) ==
1322 if (strncmp(
name,
"SYNTAX_PROTO2",
name_len) == 0) RETURN_LONG(0);
1323 if (strncmp(
name,
"SYNTAX_PROTO3",
name_len) == 0) RETURN_LONG(1);
1325 zend_throw_exception_ex(
NULL, 0 TSRMLS_CC,
1326 "Enum Google\\Protobuf\\Syntax has no value "
1327 "defined for name %s.",
1340 PHP_ME(
Any, __construct,
NULL, ZEND_ACC_PUBLIC)
1341 PHP_ME(
Any, getTypeUrl,
NULL, ZEND_ACC_PUBLIC)
1342 PHP_ME(
Any, setTypeUrl,
NULL, ZEND_ACC_PUBLIC)
1343 PHP_ME(
Any, getValue,
NULL, ZEND_ACC_PUBLIC)
1344 PHP_ME(
Any, setValue,
NULL, ZEND_ACC_PUBLIC)
1345 PHP_ME(
Any, pack,
NULL, ZEND_ACC_PUBLIC)
1347 PHP_ME(
Any, is,
NULL, ZEND_ACC_PUBLIC)
1356 "" ,ZEND_ACC_PRIVATE TSRMLS_CC);
1358 "" ,ZEND_ACC_PRIVATE TSRMLS_CC);
1363 int hex_len = strlen(hex);
1364 *binary_len = hex_len / 2;
1366 for (
i = 0;
i < *binary_len;
i++) {
1368 if (hex[
i * 2] >=
'0' && hex[
i * 2] <=
'9') {
1369 value += (hex[
i * 2] -
'0') * 16;
1371 value += (hex[
i * 2] -
'a' + 10) * 16;
1373 if (hex[
i * 2 + 1] >=
'0' && hex[
i * 2 + 1] <=
'9') {
1374 value += hex[
i * 2 + 1] -
'0';
1376 value += hex[
i * 2 + 1] -
'a' + 10;
1393 zval type_url_member;
1398 zval_dtor(&type_url_member);
1403 const char*
type_url = Z_STRVAL_P(type_url_php);
1404 size_t type_url_len = Z_STRLEN_P(type_url_php);
1406 if (url_prefix_len > type_url_len ||
1408 zend_throw_exception(
1409 NULL,
"Type url needs to be type.googleapis.com/fully-qualified",
1414 const char* fully_qualified_name =
type_url + url_prefix_len;
1416 if (desc_php ==
NULL) {
1417 zend_throw_exception(
1418 NULL,
"Specified message in any hasn't been added to descriptor pool",
1434 zval_dtor(&value_member);
1443 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"o", &
val) ==
1449 zend_error(E_USER_ERROR,
"Given value is not an instance of Message.");
1471 size_t type_url_len =
1482 zval_dtor(&type_url_php);
1491 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"C", &
klass) ==
1497 if (desc_php ==
NULL) {
1505 size_t type_url_len =
1544 zend_declare_property_long(
duration_type,
"seconds", strlen(
"seconds"),
1545 0 ,ZEND_ACC_PRIVATE TSRMLS_CC);
1546 zend_declare_property_long(
duration_type,
"nanos", strlen(
"nanos"),
1547 0 ,ZEND_ACC_PRIVATE TSRMLS_CC);
1579 zend_declare_property_long(
timestamp_type,
"seconds", strlen(
"seconds"),
1580 0 ,ZEND_ACC_PRIVATE TSRMLS_CC);
1581 zend_declare_property_long(
timestamp_type,
"nanos", strlen(
"nanos"),
1582 0 ,ZEND_ACC_PRIVATE TSRMLS_CC);
1600 &date_interface_ce) == FAILURE) {
1601 zend_error(E_ERROR,
"Make sure date extension is enabled.");
1605 if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
"O", &datetime,
1607 zend_error(E_USER_ERROR,
"Expect DatetimeInterface.");
1611 int64_t timestamp_seconds;
1616 #if PHP_MAJOR_VERSION < 7
1618 INIT_ZVAL(function_name);
1623 if (call_user_function(EG(function_table),
NULL, &function_name, &retval, 1,
1625 zend_error(E_ERROR,
"Cannot get timestamp from DateTime.");
1632 zval_dtor(&function_name);
1635 int64_t timestamp_micros;
1641 #if PHP_MAJOR_VERSION < 7
1643 INIT_ZVAL(function_name);
1644 INIT_ZVAL(format_string);
1655 if (call_user_function(EG(function_table),
NULL, &function_name, &retval,
1657 zend_error(E_ERROR,
"Cannot format DateTime.");
1664 zval_dtor(&function_name);
1665 zval_dtor(&format_string);
1674 *(int64_t*)memory = timestamp_seconds;
1680 *(int32_t*)memory = timestamp_micros * 1000;
1692 int64_t seconds = *(int64_t*)memory;
1697 int32_t nanos = *(int32_t*)memory;
1700 char formatted_time[32];
1701 snprintf(formatted_time,
sizeof(formatted_time),
"%" PRId64
".%06" PRId32,
1702 seconds, nanos / 1000);
1708 zval formatted_time_php;
1710 #if PHP_MAJOR_VERSION < 7
1711 INIT_ZVAL(function_name);
1712 INIT_ZVAL(format_string);
1713 INIT_ZVAL(formatted_time_php);
1725 if (call_user_function(EG(function_table),
NULL, &function_name, &datetime,
1727 zend_error(E_ERROR,
"Cannot create DateTime.");
1731 zval_dtor(&function_name);
1732 zval_dtor(&format_string);
1733 zval_dtor(&formatted_time_php);
1735 #if PHP_MAJOR_VERSION < 7
1736 zval* datetime_ptr = &datetime;
1739 ZVAL_OBJ(return_value, Z_OBJ(datetime));
1748 PHP_ME(
Api, __construct,
NULL, ZEND_ACC_PUBLIC)
1750 PHP_ME(
Api, setName,
NULL, ZEND_ACC_PUBLIC)
1751 PHP_ME(
Api, getMethods,
NULL, ZEND_ACC_PUBLIC)
1752 PHP_ME(
Api, setMethods,
NULL, ZEND_ACC_PUBLIC)
1753 PHP_ME(
Api, getOptions,
NULL, ZEND_ACC_PUBLIC)
1754 PHP_ME(
Api, setOptions,
NULL, ZEND_ACC_PUBLIC)
1755 PHP_ME(
Api, getVersion,
NULL, ZEND_ACC_PUBLIC)
1756 PHP_ME(
Api, setVersion,
NULL, ZEND_ACC_PUBLIC)
1757 PHP_ME(
Api, getSourceContext,
NULL, ZEND_ACC_PUBLIC)
1758 PHP_ME(
Api, setSourceContext,
NULL, ZEND_ACC_PUBLIC)
1759 PHP_ME(
Api, getMixins,
NULL, ZEND_ACC_PUBLIC)
1760 PHP_ME(
Api, setMixins,
NULL, ZEND_ACC_PUBLIC)
1761 PHP_ME(
Api, getSyntax,
NULL, ZEND_ACC_PUBLIC)
1762 PHP_ME(
Api, setSyntax,
NULL, ZEND_ACC_PUBLIC)
1771 zend_declare_property_null(
api_type,
"name", strlen(
"name"),
1772 ZEND_ACC_PRIVATE TSRMLS_CC);
1773 zend_declare_property_null(
api_type,
"methods", strlen(
"methods"),
1774 ZEND_ACC_PRIVATE TSRMLS_CC);
1775 zend_declare_property_null(
api_type,
"options", strlen(
"options"),
1776 ZEND_ACC_PRIVATE TSRMLS_CC);
1777 zend_declare_property_null(
api_type,
"version", strlen(
"version"),
1778 ZEND_ACC_PRIVATE TSRMLS_CC);
1779 zend_declare_property_null(
api_type,
"source_context", strlen(
"source_context"),
1780 ZEND_ACC_PRIVATE TSRMLS_CC);
1781 zend_declare_property_null(
api_type,
"mixins", strlen(
"mixins"),
1782 ZEND_ACC_PRIVATE TSRMLS_CC);
1783 zend_declare_property_null(
api_type,
"syntax", strlen(
"syntax"),
1784 ZEND_ACC_PRIVATE TSRMLS_CC);
1818 ZEND_ACC_PRIVATE TSRMLS_CC);
1846 ZEND_ACC_PRIVATE TSRMLS_CC);
1874 ZEND_ACC_PRIVATE TSRMLS_CC);
1890 PHP_ME(
Enum, __construct,
NULL, ZEND_ACC_PUBLIC)
1892 PHP_ME(
Enum, setName,
NULL, ZEND_ACC_PUBLIC)
1893 PHP_ME(
Enum, getEnumvalue,
NULL, ZEND_ACC_PUBLIC)
1894 PHP_ME(
Enum, setEnumvalue,
NULL, ZEND_ACC_PUBLIC)
1895 PHP_ME(
Enum, getOptions,
NULL, ZEND_ACC_PUBLIC)
1896 PHP_ME(
Enum, setOptions,
NULL, ZEND_ACC_PUBLIC)
1897 PHP_ME(
Enum, getSourceContext,
NULL, ZEND_ACC_PUBLIC)
1898 PHP_ME(
Enum, setSourceContext,
NULL, ZEND_ACC_PUBLIC)
1899 PHP_ME(
Enum, getSyntax,
NULL, ZEND_ACC_PUBLIC)
1900 PHP_ME(
Enum, setSyntax,
NULL, ZEND_ACC_PUBLIC)
1910 ZEND_ACC_PRIVATE TSRMLS_CC);
1911 zend_declare_property_null(
enum_type, "enumvalue", strlen("enumvalue"),
1912 ZEND_ACC_PRIVATE TSRMLS_CC);
1914 ZEND_ACC_PRIVATE TSRMLS_CC);
1915 zend_declare_property_null(
enum_type, "source_context", strlen("source_context"),
1916 ZEND_ACC_PRIVATE TSRMLS_CC);
1917 zend_declare_property_null(
enum_type, "syntax", strlen("syntax"),
1918 ZEND_ACC_PRIVATE TSRMLS_CC);
1954 ZEND_ACC_PRIVATE TSRMLS_CC);
1955 zend_declare_property_null(
enum_value_type,
"number", strlen(
"number"),
1956 ZEND_ACC_PRIVATE TSRMLS_CC);
1957 zend_declare_property_null(
enum_value_type,
"options", strlen(
"options"),
1958 ZEND_ACC_PRIVATE TSRMLS_CC);
1988 ZEND_ACC_PRIVATE TSRMLS_CC);
2004 PHP_ME(
Field, __construct,
NULL, ZEND_ACC_PUBLIC)
2005 PHP_ME(
Field, getKind,
NULL, ZEND_ACC_PUBLIC)
2006 PHP_ME(
Field, setKind,
NULL, ZEND_ACC_PUBLIC)
2007 PHP_ME(
Field, getCardinality,
NULL, ZEND_ACC_PUBLIC)
2008 PHP_ME(
Field, setCardinality,
NULL, ZEND_ACC_PUBLIC)
2009 PHP_ME(
Field, getNumber,
NULL, ZEND_ACC_PUBLIC)
2010 PHP_ME(
Field, setNumber,
NULL, ZEND_ACC_PUBLIC)
2012 PHP_ME(
Field, setName,
NULL, ZEND_ACC_PUBLIC)
2013 PHP_ME(
Field, getTypeUrl,
NULL, ZEND_ACC_PUBLIC)
2014 PHP_ME(
Field, setTypeUrl,
NULL, ZEND_ACC_PUBLIC)
2015 PHP_ME(
Field, getOneofIndex,
NULL, ZEND_ACC_PUBLIC)
2016 PHP_ME(
Field, setOneofIndex,
NULL, ZEND_ACC_PUBLIC)
2017 PHP_ME(
Field, getPacked,
NULL, ZEND_ACC_PUBLIC)
2018 PHP_ME(
Field, setPacked,
NULL, ZEND_ACC_PUBLIC)
2019 PHP_ME(
Field, getOptions,
NULL, ZEND_ACC_PUBLIC)
2020 PHP_ME(
Field, setOptions,
NULL, ZEND_ACC_PUBLIC)
2021 PHP_ME(
Field, getJsonName,
NULL, ZEND_ACC_PUBLIC)
2022 PHP_ME(
Field, setJsonName,
NULL, ZEND_ACC_PUBLIC)
2023 PHP_ME(
Field, getDefaultValue,
NULL, ZEND_ACC_PUBLIC)
2024 PHP_ME(
Field, setDefaultValue,
NULL, ZEND_ACC_PUBLIC)
2033 zend_declare_property_null(
field_type,
"kind", strlen(
"kind"),
2034 ZEND_ACC_PRIVATE TSRMLS_CC);
2035 zend_declare_property_null(
field_type,
"cardinality", strlen(
"cardinality"),
2036 ZEND_ACC_PRIVATE TSRMLS_CC);
2037 zend_declare_property_null(
field_type,
"number", strlen(
"number"),
2038 ZEND_ACC_PRIVATE TSRMLS_CC);
2039 zend_declare_property_null(
field_type,
"name", strlen(
"name"),
2040 ZEND_ACC_PRIVATE TSRMLS_CC);
2041 zend_declare_property_null(
field_type,
"type_url", strlen(
"type_url"),
2042 ZEND_ACC_PRIVATE TSRMLS_CC);
2043 zend_declare_property_null(
field_type,
"oneof_index", strlen(
"oneof_index"),
2044 ZEND_ACC_PRIVATE TSRMLS_CC);
2045 zend_declare_property_null(
field_type,
"packed", strlen(
"packed"),
2046 ZEND_ACC_PRIVATE TSRMLS_CC);
2047 zend_declare_property_null(
field_type,
"options", strlen(
"options"),
2048 ZEND_ACC_PRIVATE TSRMLS_CC);
2049 zend_declare_property_null(
field_type,
"json_name", strlen(
"json_name"),
2050 ZEND_ACC_PRIVATE TSRMLS_CC);
2051 zend_declare_property_null(
field_type,
"default_value", strlen(
"default_value"),
2052 ZEND_ACC_PRIVATE TSRMLS_CC);
2089 ZEND_ACC_PRIVATE TSRMLS_CC);
2140 ZEND_ACC_PRIVATE TSRMLS_CC);
2168 ZEND_ACC_PRIVATE TSRMLS_CC);
2195 zend_declare_property_null(
list_value_type,
"values", strlen(
"values"),
2196 ZEND_ACC_PRIVATE TSRMLS_CC);
2212 PHP_ME(
Method, __construct,
NULL, ZEND_ACC_PUBLIC)
2214 PHP_ME(
Method, setName,
NULL, ZEND_ACC_PUBLIC)
2215 PHP_ME(
Method, getRequestTypeUrl,
NULL, ZEND_ACC_PUBLIC)
2216 PHP_ME(
Method, setRequestTypeUrl,
NULL, ZEND_ACC_PUBLIC)
2217 PHP_ME(
Method, getRequestStreaming,
NULL, ZEND_ACC_PUBLIC)
2218 PHP_ME(
Method, setRequestStreaming,
NULL, ZEND_ACC_PUBLIC)
2219 PHP_ME(
Method, getResponseTypeUrl,
NULL, ZEND_ACC_PUBLIC)
2220 PHP_ME(
Method, setResponseTypeUrl,
NULL, ZEND_ACC_PUBLIC)
2221 PHP_ME(
Method, getResponseStreaming,
NULL, ZEND_ACC_PUBLIC)
2222 PHP_ME(
Method, setResponseStreaming,
NULL, ZEND_ACC_PUBLIC)
2223 PHP_ME(
Method, getOptions,
NULL, ZEND_ACC_PUBLIC)
2224 PHP_ME(
Method, setOptions,
NULL, ZEND_ACC_PUBLIC)
2225 PHP_ME(
Method, getSyntax,
NULL, ZEND_ACC_PUBLIC)
2226 PHP_ME(
Method, setSyntax,
NULL, ZEND_ACC_PUBLIC)
2235 zend_declare_property_null(
method_type,
"name", strlen(
"name"),
2236 ZEND_ACC_PRIVATE TSRMLS_CC);
2237 zend_declare_property_null(
method_type,
"request_type_url", strlen(
"request_type_url"),
2238 ZEND_ACC_PRIVATE TSRMLS_CC);
2239 zend_declare_property_null(
method_type,
"request_streaming", strlen(
"request_streaming"),
2240 ZEND_ACC_PRIVATE TSRMLS_CC);
2241 zend_declare_property_null(
method_type,
"response_type_url", strlen(
"response_type_url"),
2242 ZEND_ACC_PRIVATE TSRMLS_CC);
2243 zend_declare_property_null(
method_type,
"response_streaming", strlen(
"response_streaming"),
2244 ZEND_ACC_PRIVATE TSRMLS_CC);
2245 zend_declare_property_null(
method_type,
"options", strlen(
"options"),
2246 ZEND_ACC_PRIVATE TSRMLS_CC);
2247 zend_declare_property_null(
method_type,
"syntax", strlen(
"syntax"),
2248 ZEND_ACC_PRIVATE TSRMLS_CC);
2270 PHP_ME(
Mixin, __construct,
NULL, ZEND_ACC_PUBLIC)
2272 PHP_ME(
Mixin, setName,
NULL, ZEND_ACC_PUBLIC)
2273 PHP_ME(
Mixin, getRoot,
NULL, ZEND_ACC_PUBLIC)
2274 PHP_ME(
Mixin, setRoot,
NULL, ZEND_ACC_PUBLIC)
2283 zend_declare_property_null(
mixin_type,
"name", strlen(
"name"),
2284 ZEND_ACC_PRIVATE TSRMLS_CC);
2285 zend_declare_property_null(
mixin_type,
"root", strlen(
"root"),
2286 ZEND_ACC_PRIVATE TSRMLS_CC);
2303 PHP_ME(
Option, __construct,
NULL, ZEND_ACC_PUBLIC)
2305 PHP_ME(
Option, setName,
NULL, ZEND_ACC_PUBLIC)
2306 PHP_ME(
Option, getValue,
NULL, ZEND_ACC_PUBLIC)
2307 PHP_ME(
Option, setValue,
NULL, ZEND_ACC_PUBLIC)
2316 zend_declare_property_null(
option_type,
"name", strlen(
"name"),
2317 ZEND_ACC_PRIVATE TSRMLS_CC);
2318 zend_declare_property_null(
option_type,
"value", strlen(
"value"),
2319 ZEND_ACC_PRIVATE TSRMLS_CC);
2348 ZEND_ACC_PRIVATE TSRMLS_CC);
2376 ZEND_ACC_PRIVATE TSRMLS_CC);
2392 PHP_ME(
Struct, __construct,
NULL, ZEND_ACC_PUBLIC)
2393 PHP_ME(
Struct, getFields,
NULL, ZEND_ACC_PUBLIC)
2394 PHP_ME(
Struct, setFields,
NULL, ZEND_ACC_PUBLIC)
2404 ZEND_ACC_PRIVATE TSRMLS_CC);
2420 PHP_ME(
Type, __construct,
NULL, ZEND_ACC_PUBLIC)
2422 PHP_ME(
Type, setName,
NULL, ZEND_ACC_PUBLIC)
2423 PHP_ME(
Type, getFields,
NULL, ZEND_ACC_PUBLIC)
2424 PHP_ME(
Type, setFields,
NULL, ZEND_ACC_PUBLIC)
2425 PHP_ME(
Type, getOneofs,
NULL, ZEND_ACC_PUBLIC)
2426 PHP_ME(
Type, setOneofs,
NULL, ZEND_ACC_PUBLIC)
2427 PHP_ME(
Type, getOptions,
NULL, ZEND_ACC_PUBLIC)
2428 PHP_ME(
Type, setOptions,
NULL, ZEND_ACC_PUBLIC)
2429 PHP_ME(
Type, getSourceContext,
NULL, ZEND_ACC_PUBLIC)
2430 PHP_ME(
Type, setSourceContext,
NULL, ZEND_ACC_PUBLIC)
2431 PHP_ME(
Type, getSyntax,
NULL, ZEND_ACC_PUBLIC)
2432 PHP_ME(
Type, setSyntax,
NULL, ZEND_ACC_PUBLIC)
2441 zend_declare_property_null(
type_type,
"name", strlen(
"name"),
2442 ZEND_ACC_PRIVATE TSRMLS_CC);
2443 zend_declare_property_null(
type_type,
"fields", strlen(
"fields"),
2444 ZEND_ACC_PRIVATE TSRMLS_CC);
2445 zend_declare_property_null(
type_type,
"oneofs", strlen(
"oneofs"),
2446 ZEND_ACC_PRIVATE TSRMLS_CC);
2447 zend_declare_property_null(
type_type,
"options", strlen(
"options"),
2448 ZEND_ACC_PRIVATE TSRMLS_CC);
2449 zend_declare_property_null(
type_type,
"source_context", strlen(
"source_context"),
2450 ZEND_ACC_PRIVATE TSRMLS_CC);
2451 zend_declare_property_null(
type_type,
"syntax", strlen(
"syntax"),
2452 ZEND_ACC_PRIVATE TSRMLS_CC);
2485 ZEND_ACC_PRIVATE TSRMLS_CC);
2513 ZEND_ACC_PRIVATE TSRMLS_CC);
2529 PHP_ME(
Value, __construct,
NULL, ZEND_ACC_PUBLIC)
2530 PHP_ME(
Value, getNullValue,
NULL, ZEND_ACC_PUBLIC)
2531 PHP_ME(
Value, setNullValue,
NULL, ZEND_ACC_PUBLIC)
2532 PHP_ME(
Value, getNumberValue,
NULL, ZEND_ACC_PUBLIC)
2533 PHP_ME(
Value, setNumberValue,
NULL, ZEND_ACC_PUBLIC)
2534 PHP_ME(
Value, getStringValue,
NULL, ZEND_ACC_PUBLIC)
2535 PHP_ME(
Value, setStringValue,
NULL, ZEND_ACC_PUBLIC)
2536 PHP_ME(
Value, getBoolValue,
NULL, ZEND_ACC_PUBLIC)
2537 PHP_ME(
Value, setBoolValue,
NULL, ZEND_ACC_PUBLIC)
2538 PHP_ME(
Value, getStructValue,
NULL, ZEND_ACC_PUBLIC)
2539 PHP_ME(
Value, setStructValue,
NULL, ZEND_ACC_PUBLIC)
2540 PHP_ME(
Value, getListValue,
NULL, ZEND_ACC_PUBLIC)
2541 PHP_ME(
Value, setListValue,
NULL, ZEND_ACC_PUBLIC)
2542 PHP_ME(
Value, getKind,
NULL, ZEND_ACC_PUBLIC)
2551 zend_declare_property_null(
value_type,
"kind", strlen(
"kind"),
2552 ZEND_ACC_PRIVATE TSRMLS_CC);
2573 #define DEFINE_GPBMETADATA_FILE(LOWERNAME, CAMELNAME, CLASSNAME) \
2574 zend_class_entry* gpb_metadata_##LOWERNAME##_type; \
2575 static zend_function_entry gpb_metadata_##LOWERNAME##_methods[] = { \
2576 PHP_ME(GPBMetadata_##CAMELNAME, initOnce, NULL, \
2577 ZEND_ACC_PUBLIC | ZEND_ACC_STATIC) \
2580 void gpb_metadata_##LOWERNAME##_init(TSRMLS_D) { \
2581 zend_class_entry class_type; \
2582 INIT_CLASS_ENTRY(class_type, CLASSNAME, \
2583 gpb_metadata_##LOWERNAME##_methods); \
2584 gpb_metadata_##LOWERNAME##_type = \
2585 zend_register_internal_class(&class_type TSRMLS_CC); \
2587 PHP_METHOD(GPBMetadata_##CAMELNAME, initOnce) { \
2588 init_file_##LOWERNAME(TSRMLS_C); \
2594 "GPBMetadata\\Google\\Protobuf\\Duration");
2596 "GPBMetadata\\Google\\Protobuf\\FieldMask");
2598 "GPBMetadata\\Google\\Protobuf\\GPBEmpty");
2600 "GPBMetadata\\Google\\Protobuf\\SourceContext");
2602 "GPBMetadata\\Google\\Protobuf\\Struct");
2604 "GPBMetadata\\Google\\Protobuf\\Timestamp");
2607 "GPBMetadata\\Google\\Protobuf\\Wrappers");
2609 #undef DEFINE_GPBMETADATA_FILE