Skip to content

Commit 7da07ff

Browse files
authored
Arginfo stubs for message.c (#485)
1 parent 39c1ae9 commit 7da07ff

File tree

4 files changed

+210
-27
lines changed

4 files changed

+210
-27
lines changed

message.c

+7-27
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@
2929
#include "Zend/zend_exceptions.h"
3030
#include "topic.h"
3131
#include "message.h"
32+
#if PHP_VERSION_ID < 80000
33+
#include "message_legacy_arginfo.h"
34+
#else
35+
#include "message_arginfo.h"
36+
#endif
3237

3338
zend_class_entry * ce_kafka_message;
3439

@@ -109,11 +114,7 @@ void kafka_message_list_to_array(zval *return_value, rd_kafka_message_t **messag
109114
/* {{{ proto string RdKafka\Message::errstr()
110115
* Returns the error string for an errored KrKafka\Message or NULL if there was no error.
111116
*/
112-
113-
ZEND_BEGIN_ARG_INFO_EX(arginfo_kafka_message_errstr, 0, 0, 0)
114-
ZEND_END_ARG_INFO()
115-
116-
PHP_METHOD(RdKafka__Message, errstr)
117+
PHP_METHOD(RdKafka_Message, errstr)
117118
{
118119
zval *zerr;
119120
zval *zpayload;
@@ -143,27 +144,6 @@ PHP_METHOD(RdKafka__Message, errstr)
143144
}
144145
/* }}} */
145146

146-
static const zend_function_entry kafka_message_fe[] = {
147-
PHP_ME(RdKafka__Message, errstr, arginfo_kafka_message_errstr, ZEND_ACC_PUBLIC)
148-
PHP_FE_END
149-
};
150-
151147
void kafka_message_minit(INIT_FUNC_ARGS) { /* {{{ */
152-
zend_class_entry ce;
153-
154-
INIT_NS_CLASS_ENTRY(ce, "RdKafka", "Message", kafka_message_fe);
155-
ce_kafka_message = zend_register_internal_class(&ce);
156-
157-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("err"), ZEND_ACC_PUBLIC);
158-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("topic_name"), ZEND_ACC_PUBLIC);
159-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("timestamp"), ZEND_ACC_PUBLIC);
160-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("partition"), ZEND_ACC_PUBLIC);
161-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("payload"), ZEND_ACC_PUBLIC);
162-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("len"), ZEND_ACC_PUBLIC);
163-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("key"), ZEND_ACC_PUBLIC);
164-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("offset"), ZEND_ACC_PUBLIC);
165-
#ifdef HAVE_RD_KAFKA_MESSAGE_HEADERS
166-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("headers"), ZEND_ACC_PUBLIC);
167-
#endif
168-
zend_declare_property_null(ce_kafka_message, ZEND_STRL("opaque"), ZEND_ACC_PUBLIC);
148+
ce_kafka_message = register_class_RdKafka_Message();
169149
} /* }}} */

message.stub.php

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
/**
4+
* @generate-class-entries
5+
* @generate-function-entries
6+
* @generate-legacy-arginfo
7+
*/
8+
9+
namespace RdKafka;
10+
11+
class Message
12+
{
13+
public int $err;
14+
15+
public ?string $topic_name = null;
16+
17+
public ?int $timestamp = null;
18+
19+
public int $partition;
20+
21+
public ?string $payload = null;
22+
23+
public ?int $len = null;
24+
25+
public ?string $key = null;
26+
27+
public int $offset;
28+
29+
public array $headers;
30+
31+
public ?string $opaque = null;
32+
33+
/** @tentative-return-type */
34+
public function errstr(): ?string {}
35+
}

message_arginfo.h

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/* This is a generated file, edit the .stub.php file instead.
2+
* Stub hash: f642f90b8a3c35c353320c0574902898a3645ee1 */
3+
4+
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_RdKafka_Message_errstr, 0, 0, IS_STRING, 1)
5+
ZEND_END_ARG_INFO()
6+
7+
8+
ZEND_METHOD(RdKafka_Message, errstr);
9+
10+
11+
static const zend_function_entry class_RdKafka_Message_methods[] = {
12+
ZEND_ME(RdKafka_Message, errstr, arginfo_class_RdKafka_Message_errstr, ZEND_ACC_PUBLIC)
13+
ZEND_FE_END
14+
};
15+
16+
static zend_class_entry *register_class_RdKafka_Message(void)
17+
{
18+
zend_class_entry ce, *class_entry;
19+
20+
INIT_NS_CLASS_ENTRY(ce, "RdKafka", "Message", class_RdKafka_Message_methods);
21+
class_entry = zend_register_internal_class_ex(&ce, NULL);
22+
23+
zval property_err_default_value;
24+
ZVAL_UNDEF(&property_err_default_value);
25+
zend_string *property_err_name = zend_string_init("err", sizeof("err") - 1, 1);
26+
zend_declare_typed_property(class_entry, property_err_name, &property_err_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
27+
zend_string_release(property_err_name);
28+
29+
zval property_topic_name_default_value;
30+
ZVAL_NULL(&property_topic_name_default_value);
31+
zend_string *property_topic_name_name = zend_string_init("topic_name", sizeof("topic_name") - 1, 1);
32+
zend_declare_typed_property(class_entry, property_topic_name_name, &property_topic_name_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING|MAY_BE_NULL));
33+
zend_string_release(property_topic_name_name);
34+
35+
zval property_timestamp_default_value;
36+
ZVAL_NULL(&property_timestamp_default_value);
37+
zend_string *property_timestamp_name = zend_string_init("timestamp", sizeof("timestamp") - 1, 1);
38+
zend_declare_typed_property(class_entry, property_timestamp_name, &property_timestamp_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG|MAY_BE_NULL));
39+
zend_string_release(property_timestamp_name);
40+
41+
zval property_partition_default_value;
42+
ZVAL_UNDEF(&property_partition_default_value);
43+
zend_string *property_partition_name = zend_string_init("partition", sizeof("partition") - 1, 1);
44+
zend_declare_typed_property(class_entry, property_partition_name, &property_partition_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
45+
zend_string_release(property_partition_name);
46+
47+
zval property_payload_default_value;
48+
ZVAL_NULL(&property_payload_default_value);
49+
zend_string *property_payload_name = zend_string_init("payload", sizeof("payload") - 1, 1);
50+
zend_declare_typed_property(class_entry, property_payload_name, &property_payload_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING|MAY_BE_NULL));
51+
zend_string_release(property_payload_name);
52+
53+
zval property_len_default_value;
54+
ZVAL_NULL(&property_len_default_value);
55+
zend_string *property_len_name = zend_string_init("len", sizeof("len") - 1, 1);
56+
zend_declare_typed_property(class_entry, property_len_name, &property_len_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG|MAY_BE_NULL));
57+
zend_string_release(property_len_name);
58+
59+
zval property_key_default_value;
60+
ZVAL_NULL(&property_key_default_value);
61+
zend_string *property_key_name = zend_string_init("key", sizeof("key") - 1, 1);
62+
zend_declare_typed_property(class_entry, property_key_name, &property_key_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING|MAY_BE_NULL));
63+
zend_string_release(property_key_name);
64+
65+
zval property_offset_default_value;
66+
ZVAL_UNDEF(&property_offset_default_value);
67+
zend_string *property_offset_name = zend_string_init("offset", sizeof("offset") - 1, 1);
68+
zend_declare_typed_property(class_entry, property_offset_name, &property_offset_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_LONG));
69+
zend_string_release(property_offset_name);
70+
71+
zval property_headers_default_value;
72+
ZVAL_UNDEF(&property_headers_default_value);
73+
zend_string *property_headers_name = zend_string_init("headers", sizeof("headers") - 1, 1);
74+
zend_declare_typed_property(class_entry, property_headers_name, &property_headers_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY));
75+
zend_string_release(property_headers_name);
76+
77+
zval property_opaque_default_value;
78+
ZVAL_NULL(&property_opaque_default_value);
79+
zend_string *property_opaque_name = zend_string_init("opaque", sizeof("opaque") - 1, 1);
80+
zend_declare_typed_property(class_entry, property_opaque_name, &property_opaque_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING|MAY_BE_NULL));
81+
zend_string_release(property_opaque_name);
82+
83+
return class_entry;
84+
}

message_legacy_arginfo.h

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
/* This is a generated file, edit the .stub.php file instead.
2+
* Stub hash: f642f90b8a3c35c353320c0574902898a3645ee1 */
3+
4+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RdKafka_Message_errstr, 0, 0, 0)
5+
ZEND_END_ARG_INFO()
6+
7+
8+
ZEND_METHOD(RdKafka_Message, errstr);
9+
10+
11+
static const zend_function_entry class_RdKafka_Message_methods[] = {
12+
ZEND_ME(RdKafka_Message, errstr, arginfo_class_RdKafka_Message_errstr, ZEND_ACC_PUBLIC)
13+
ZEND_FE_END
14+
};
15+
16+
static zend_class_entry *register_class_RdKafka_Message(void)
17+
{
18+
zend_class_entry ce, *class_entry;
19+
20+
INIT_NS_CLASS_ENTRY(ce, "RdKafka", "Message", class_RdKafka_Message_methods);
21+
class_entry = zend_register_internal_class_ex(&ce, NULL);
22+
23+
zval property_err_default_value;
24+
ZVAL_NULL(&property_err_default_value);
25+
zend_string *property_err_name = zend_string_init("err", sizeof("err") - 1, 1);
26+
zend_declare_property_ex(class_entry, property_err_name, &property_err_default_value, ZEND_ACC_PUBLIC, NULL);
27+
zend_string_release(property_err_name);
28+
29+
zval property_topic_name_default_value;
30+
ZVAL_NULL(&property_topic_name_default_value);
31+
zend_string *property_topic_name_name = zend_string_init("topic_name", sizeof("topic_name") - 1, 1);
32+
zend_declare_property_ex(class_entry, property_topic_name_name, &property_topic_name_default_value, ZEND_ACC_PUBLIC, NULL);
33+
zend_string_release(property_topic_name_name);
34+
35+
zval property_timestamp_default_value;
36+
ZVAL_NULL(&property_timestamp_default_value);
37+
zend_string *property_timestamp_name = zend_string_init("timestamp", sizeof("timestamp") - 1, 1);
38+
zend_declare_property_ex(class_entry, property_timestamp_name, &property_timestamp_default_value, ZEND_ACC_PUBLIC, NULL);
39+
zend_string_release(property_timestamp_name);
40+
41+
zval property_partition_default_value;
42+
ZVAL_NULL(&property_partition_default_value);
43+
zend_string *property_partition_name = zend_string_init("partition", sizeof("partition") - 1, 1);
44+
zend_declare_property_ex(class_entry, property_partition_name, &property_partition_default_value, ZEND_ACC_PUBLIC, NULL);
45+
zend_string_release(property_partition_name);
46+
47+
zval property_payload_default_value;
48+
ZVAL_NULL(&property_payload_default_value);
49+
zend_string *property_payload_name = zend_string_init("payload", sizeof("payload") - 1, 1);
50+
zend_declare_property_ex(class_entry, property_payload_name, &property_payload_default_value, ZEND_ACC_PUBLIC, NULL);
51+
zend_string_release(property_payload_name);
52+
53+
zval property_len_default_value;
54+
ZVAL_NULL(&property_len_default_value);
55+
zend_string *property_len_name = zend_string_init("len", sizeof("len") - 1, 1);
56+
zend_declare_property_ex(class_entry, property_len_name, &property_len_default_value, ZEND_ACC_PUBLIC, NULL);
57+
zend_string_release(property_len_name);
58+
59+
zval property_key_default_value;
60+
ZVAL_NULL(&property_key_default_value);
61+
zend_string *property_key_name = zend_string_init("key", sizeof("key") - 1, 1);
62+
zend_declare_property_ex(class_entry, property_key_name, &property_key_default_value, ZEND_ACC_PUBLIC, NULL);
63+
zend_string_release(property_key_name);
64+
65+
zval property_offset_default_value;
66+
ZVAL_NULL(&property_offset_default_value);
67+
zend_string *property_offset_name = zend_string_init("offset", sizeof("offset") - 1, 1);
68+
zend_declare_property_ex(class_entry, property_offset_name, &property_offset_default_value, ZEND_ACC_PUBLIC, NULL);
69+
zend_string_release(property_offset_name);
70+
71+
zval property_headers_default_value;
72+
ZVAL_NULL(&property_headers_default_value);
73+
zend_string *property_headers_name = zend_string_init("headers", sizeof("headers") - 1, 1);
74+
zend_declare_property_ex(class_entry, property_headers_name, &property_headers_default_value, ZEND_ACC_PUBLIC, NULL);
75+
zend_string_release(property_headers_name);
76+
77+
zval property_opaque_default_value;
78+
ZVAL_NULL(&property_opaque_default_value);
79+
zend_string *property_opaque_name = zend_string_init("opaque", sizeof("opaque") - 1, 1);
80+
zend_declare_property_ex(class_entry, property_opaque_name, &property_opaque_default_value, ZEND_ACC_PUBLIC, NULL);
81+
zend_string_release(property_opaque_name);
82+
83+
return class_entry;
84+
}

0 commit comments

Comments
 (0)