|
|
|
@ -34,8 +34,8 @@ void free_wrapped_grpc_call(void *object TSRMLS_DC){ |
|
|
|
|
|
|
|
|
|
/* Initializes an instance of wrapped_grpc_call to be associated with an object
|
|
|
|
|
* of a class specified by class_type */ |
|
|
|
|
zend_object_value create_wrapped_grpc_call( |
|
|
|
|
zend_class_entry *class_type TSRMLS_DC){ |
|
|
|
|
zend_object_value create_wrapped_grpc_call(zend_class_entry *class_type |
|
|
|
|
TSRMLS_DC) { |
|
|
|
|
zend_object_value retval; |
|
|
|
|
wrapped_grpc_call *intern; |
|
|
|
|
|
|
|
|
@ -45,10 +45,8 @@ zend_object_value create_wrapped_grpc_call( |
|
|
|
|
zend_object_std_init(&intern->std, class_type TSRMLS_CC); |
|
|
|
|
object_properties_init(&intern->std, class_type); |
|
|
|
|
retval.handle = zend_objects_store_put( |
|
|
|
|
intern, |
|
|
|
|
(zend_objects_store_dtor_t) zend_objects_destroy_object, |
|
|
|
|
free_wrapped_grpc_call, |
|
|
|
|
NULL TSRMLS_CC); |
|
|
|
|
intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, |
|
|
|
|
free_wrapped_grpc_call, NULL TSRMLS_CC); |
|
|
|
|
retval.handlers = zend_get_std_object_handlers(); |
|
|
|
|
return retval; |
|
|
|
|
} |
|
|
|
@ -59,8 +57,8 @@ zval *grpc_php_wrap_call(grpc_call *wrapped, bool owned){ |
|
|
|
|
zval *call_object; |
|
|
|
|
MAKE_STD_ZVAL(call_object); |
|
|
|
|
object_init_ex(call_object, grpc_ce_call); |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
call_object TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(call_object TSRMLS_CC); |
|
|
|
|
call->wrapped = wrapped; |
|
|
|
|
return call_object; |
|
|
|
|
} |
|
|
|
@ -85,10 +83,8 @@ zval *grpc_call_create_metadata_array(int count, grpc_metadata *elements){ |
|
|
|
|
memcpy(str_key, elem->key, key_len); |
|
|
|
|
str_val = ecalloc(elem->value_length + 1, sizeof(char)); |
|
|
|
|
memcpy(str_val, elem->value, elem->value_length); |
|
|
|
|
if(zend_hash_find(array_hash, |
|
|
|
|
str_key, |
|
|
|
|
key_len, |
|
|
|
|
(void**)data) == SUCCESS){ |
|
|
|
|
if (zend_hash_find(array_hash, str_key, key_len, (void **)data) == |
|
|
|
|
SUCCESS) { |
|
|
|
|
switch (Z_TYPE_P(*data)) { |
|
|
|
|
case IS_STRING: |
|
|
|
|
MAKE_STD_ZVAL(inner_array); |
|
|
|
@ -107,23 +103,15 @@ zval *grpc_call_create_metadata_array(int count, grpc_metadata *elements){ |
|
|
|
|
efree(str_val); |
|
|
|
|
return NULL; |
|
|
|
|
} |
|
|
|
|
add_next_index_stringl(inner_array, |
|
|
|
|
str_val, |
|
|
|
|
elem->value_length, |
|
|
|
|
false); |
|
|
|
|
add_next_index_stringl(inner_array, str_val, elem->value_length, false); |
|
|
|
|
} else { |
|
|
|
|
add_assoc_stringl(array, |
|
|
|
|
str_key, |
|
|
|
|
str_val, |
|
|
|
|
elem->value_length, |
|
|
|
|
false); |
|
|
|
|
add_assoc_stringl(array, str_key, str_val, elem->value_length, false); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return array; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int php_grpc_call_add_metadata_array_walk(void *elem TSRMLS_DC, |
|
|
|
|
int num_args, |
|
|
|
|
int php_grpc_call_add_metadata_array_walk(void *elem TSRMLS_DC, int num_args, |
|
|
|
|
va_list args, |
|
|
|
|
zend_hash_key *hash_key) { |
|
|
|
|
grpc_call_error error_code; |
|
|
|
@ -153,11 +141,8 @@ int php_grpc_call_add_metadata_array_walk(void *elem TSRMLS_DC, |
|
|
|
|
case IS_ARRAY: |
|
|
|
|
inner_hash = Z_ARRVAL_P(*data); |
|
|
|
|
zend_hash_apply_with_arguments(inner_hash TSRMLS_CC, |
|
|
|
|
php_grpc_call_add_metadata_array_walk, |
|
|
|
|
3, |
|
|
|
|
call, |
|
|
|
|
flags, |
|
|
|
|
key); |
|
|
|
|
php_grpc_call_add_metadata_array_walk, 3, |
|
|
|
|
call, flags, key); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
zend_throw_exception(zend_exception_get_default(), |
|
|
|
@ -175,17 +160,15 @@ int php_grpc_call_add_metadata_array_walk(void *elem TSRMLS_DC, |
|
|
|
|
* @param Timeval $absolute_deadline The deadline for completing the call |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, __construct) { |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
zval *channel_obj; |
|
|
|
|
char *method; |
|
|
|
|
int method_len; |
|
|
|
|
zval *deadline_obj; |
|
|
|
|
/* "OsO" == 1 Object, 1 string, 1 Object */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"OsO", |
|
|
|
|
&channel_obj, grpc_ce_channel, |
|
|
|
|
&method, &method_len, |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "OsO", &channel_obj, |
|
|
|
|
grpc_ce_channel, &method, &method_len, |
|
|
|
|
&deadline_obj, grpc_ce_timeval) == FAILURE) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"Call expects a Channel, a String, and a Timeval", |
|
|
|
@ -193,7 +176,8 @@ PHP_METHOD(Call, __construct){ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
wrapped_grpc_channel *channel = |
|
|
|
|
(wrapped_grpc_channel*)zend_object_store_get_object(channel_obj TSRMLS_CC); |
|
|
|
|
(wrapped_grpc_channel *)zend_object_store_get_object( |
|
|
|
|
channel_obj TSRMLS_CC); |
|
|
|
|
if (channel->wrapped == NULL) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"Call cannot be constructed from a closed Channel", |
|
|
|
@ -202,11 +186,10 @@ PHP_METHOD(Call, __construct){ |
|
|
|
|
} |
|
|
|
|
add_property_zval(getThis(), "channel", channel_obj); |
|
|
|
|
wrapped_grpc_timeval *deadline = |
|
|
|
|
(wrapped_grpc_timeval*)zend_object_store_get_object(deadline_obj TSRMLS_CC); |
|
|
|
|
call->wrapped = grpc_channel_create_call(channel->wrapped, |
|
|
|
|
method, |
|
|
|
|
channel->target, |
|
|
|
|
deadline->wrapped); |
|
|
|
|
(wrapped_grpc_timeval *)zend_object_store_get_object( |
|
|
|
|
deadline_obj TSRMLS_CC); |
|
|
|
|
call->wrapped = grpc_channel_create_call(channel->wrapped, method, |
|
|
|
|
channel->target, deadline->wrapped); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -219,16 +202,14 @@ PHP_METHOD(Call, __construct){ |
|
|
|
|
* @return Void |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, add_metadata) { |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
zval *array; |
|
|
|
|
HashTable *array_hash; |
|
|
|
|
long flags = 0; |
|
|
|
|
/* "a|l" == 1 array, 1 optional long */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"a|l", |
|
|
|
|
&array, |
|
|
|
|
&flags) == FAILURE){ |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|l", &array, &flags) == |
|
|
|
|
FAILURE) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"add_metadata expects an array and an optional long", |
|
|
|
|
1 TSRMLS_CC); |
|
|
|
@ -236,10 +217,8 @@ PHP_METHOD(Call, add_metadata){ |
|
|
|
|
} |
|
|
|
|
array_hash = Z_ARRVAL_P(array); |
|
|
|
|
zend_hash_apply_with_arguments(array_hash TSRMLS_CC, |
|
|
|
|
php_grpc_call_add_metadata_array_walk, |
|
|
|
|
2, |
|
|
|
|
call->wrapped, |
|
|
|
|
(gpr_uint32)flags); |
|
|
|
|
php_grpc_call_add_metadata_array_walk, 2, |
|
|
|
|
call->wrapped, (gpr_uint32)flags); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -260,12 +239,8 @@ PHP_METHOD(Call, start_invoke){ |
|
|
|
|
zval *queue_obj; |
|
|
|
|
long flags = 0; |
|
|
|
|
/* "Olll|l" == 1 Object, 3 mandatory longs, 1 optional long */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"Olll|l", |
|
|
|
|
&queue_obj, grpc_ce_completion_queue, |
|
|
|
|
&tag1, |
|
|
|
|
&tag2, |
|
|
|
|
&tag3, |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Olll|l", &queue_obj, |
|
|
|
|
grpc_ce_completion_queue, &tag1, &tag2, &tag3, |
|
|
|
|
&flags) == FAILURE) { |
|
|
|
|
zend_throw_exception( |
|
|
|
|
spl_ce_InvalidArgumentException, |
|
|
|
@ -274,17 +249,14 @@ PHP_METHOD(Call, start_invoke){ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
add_property_zval(getThis(), "completion_queue", queue_obj); |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_completion_queue *queue = |
|
|
|
|
(wrapped_grpc_completion_queue *)zend_object_store_get_object( |
|
|
|
|
queue_obj TSRMLS_CC); |
|
|
|
|
error_code = grpc_call_start_invoke(call->wrapped, |
|
|
|
|
queue->wrapped, |
|
|
|
|
(void*)tag1, |
|
|
|
|
(void*)tag2, |
|
|
|
|
(void*)tag3, |
|
|
|
|
(gpr_uint32)flags); |
|
|
|
|
error_code = |
|
|
|
|
grpc_call_start_invoke(call->wrapped, queue->wrapped, (void *)tag1, |
|
|
|
|
(void *)tag2, (void *)tag3, (gpr_uint32)flags); |
|
|
|
|
MAYBE_THROW_CALL_ERROR(start_invoke, error_code); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -303,10 +275,8 @@ PHP_METHOD(Call, server_accept){ |
|
|
|
|
zval *queue_obj; |
|
|
|
|
grpc_call_error error_code; |
|
|
|
|
/* "Ol|l" == 1 Object, 1 long */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"Ol", |
|
|
|
|
&queue_obj, grpc_ce_completion_queue, |
|
|
|
|
&tag) == FAILURE){ |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &queue_obj, |
|
|
|
|
grpc_ce_completion_queue, &tag) == FAILURE) { |
|
|
|
|
zend_throw_exception( |
|
|
|
|
spl_ce_InvalidArgumentException, |
|
|
|
|
"server_accept expects a CompletionQueue, a long, and an optional long", |
|
|
|
@ -314,14 +284,13 @@ PHP_METHOD(Call, server_accept){ |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
add_property_zval(getThis(), "completion_queue", queue_obj); |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_completion_queue *queue = |
|
|
|
|
(wrapped_grpc_completion_queue *)zend_object_store_get_object( |
|
|
|
|
queue_obj TSRMLS_CC); |
|
|
|
|
error_code = grpc_call_server_accept(call->wrapped, |
|
|
|
|
queue->wrapped, |
|
|
|
|
(void*)tag); |
|
|
|
|
error_code = |
|
|
|
|
grpc_call_server_accept(call->wrapped, queue->wrapped, (void *)tag); |
|
|
|
|
MAYBE_THROW_CALL_ERROR(server_accept, error_code); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -329,16 +298,14 @@ PHP_METHOD(Call, server_end_initial_metadata) { |
|
|
|
|
grpc_call_error error_code; |
|
|
|
|
long flags = 0; |
|
|
|
|
/* "|l" == 1 optional long */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"|l", |
|
|
|
|
&flags) == FAILURE) { |
|
|
|
|
zend_throw_exception( |
|
|
|
|
spl_ce_InvalidArgumentException, |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &flags) == |
|
|
|
|
FAILURE) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"server_end_initial_metadata expects an optional long", |
|
|
|
|
1 TSRMLS_CC); |
|
|
|
|
} |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
error_code = grpc_call_server_end_initial_metadata(call->wrapped, flags); |
|
|
|
|
MAYBE_THROW_CALL_ERROR(server_end_initial_metadata, error_code); |
|
|
|
|
} |
|
|
|
@ -348,8 +315,8 @@ PHP_METHOD(Call, server_end_initial_metadata) { |
|
|
|
|
* @return Void |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, cancel) { |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
grpc_call_error error_code = grpc_call_cancel(call->wrapped); |
|
|
|
|
MAYBE_THROW_CALL_ERROR(cancel, error_code); |
|
|
|
|
} |
|
|
|
@ -364,28 +331,23 @@ PHP_METHOD(Call, cancel){ |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, start_write) { |
|
|
|
|
grpc_call_error error_code; |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
char *buffer; |
|
|
|
|
int buffer_len; |
|
|
|
|
long tag; |
|
|
|
|
long flags = 0; |
|
|
|
|
/* "Ol|l" == 1 Object, 1 mandatory long, 1 optional long */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"sl|l", |
|
|
|
|
&buffer, &buffer_len, |
|
|
|
|
&tag, |
|
|
|
|
&flags) == FAILURE){ |
|
|
|
|
zend_throw_exception( |
|
|
|
|
spl_ce_InvalidArgumentException, |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sl|l", &buffer, |
|
|
|
|
&buffer_len, &tag, &flags) == FAILURE) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"start_write expects a string and an optional long", |
|
|
|
|
1 TSRMLS_CC); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
error_code = grpc_call_start_write(call->wrapped, |
|
|
|
|
string_to_byte_buffer(buffer, buffer_len), |
|
|
|
|
(void*)tag, |
|
|
|
|
(gpr_uint32)flags); |
|
|
|
|
(void *)tag, (gpr_uint32)flags); |
|
|
|
|
MAYBE_THROW_CALL_ERROR(start_write, error_code); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -398,28 +360,24 @@ PHP_METHOD(Call, start_write){ |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, start_write_status) { |
|
|
|
|
grpc_call_error error_code; |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
long status_code; |
|
|
|
|
int status_details_length; |
|
|
|
|
long tag; |
|
|
|
|
char *status_details; |
|
|
|
|
/* "lsl" == 1 long, 1 string, 1 long */ |
|
|
|
|
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |
|
|
|
|
"lsl", |
|
|
|
|
&status_code, |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsl", &status_code, |
|
|
|
|
&status_details, &status_details_length, |
|
|
|
|
&tag) == FAILURE) { |
|
|
|
|
zend_throw_exception( |
|
|
|
|
spl_ce_InvalidArgumentException, |
|
|
|
|
"start_write_status expects a long, a string, and a long", |
|
|
|
|
1 TSRMLS_CC); |
|
|
|
|
"start_write_status expects a long, a string, and a long", 1 TSRMLS_CC); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
error_code = grpc_call_start_write_status(call->wrapped, |
|
|
|
|
(grpc_status_code)status_code, |
|
|
|
|
status_details, |
|
|
|
|
(void*)tag); |
|
|
|
|
error_code = |
|
|
|
|
grpc_call_start_write_status(call->wrapped, (grpc_status_code)status_code, |
|
|
|
|
status_details, (void *)tag); |
|
|
|
|
MAYBE_THROW_CALL_ERROR(start_write_status, error_code); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -429,14 +387,13 @@ PHP_METHOD(Call, start_write_status){ |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, writes_done) { |
|
|
|
|
grpc_call_error error_code; |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
long tag; |
|
|
|
|
/* "l" == 1 long */ |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &tag) == FAILURE) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"writes_done expects a long", |
|
|
|
|
1 TSRMLS_CC); |
|
|
|
|
"writes_done expects a long", 1 TSRMLS_CC); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
error_code = grpc_call_writes_done(call->wrapped, (void *)tag); |
|
|
|
@ -451,14 +408,13 @@ PHP_METHOD(Call, writes_done){ |
|
|
|
|
*/ |
|
|
|
|
PHP_METHOD(Call, start_read) { |
|
|
|
|
grpc_call_error error_code; |
|
|
|
|
wrapped_grpc_call *call = (wrapped_grpc_call*)zend_object_store_get_object( |
|
|
|
|
getThis() TSRMLS_CC); |
|
|
|
|
wrapped_grpc_call *call = |
|
|
|
|
(wrapped_grpc_call *)zend_object_store_get_object(getThis() TSRMLS_CC); |
|
|
|
|
long tag; |
|
|
|
|
/* "l" == 1 long */ |
|
|
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &tag) == FAILURE) { |
|
|
|
|
zend_throw_exception(spl_ce_InvalidArgumentException, |
|
|
|
|
"start_read expects a long", |
|
|
|
|
1 TSRMLS_CC); |
|
|
|
|
"start_read expects a long", 1 TSRMLS_CC); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
error_code = grpc_call_start_read(call->wrapped, (void *)tag); |
|
|
|
@ -469,15 +425,14 @@ static zend_function_entry call_methods[] = { |
|
|
|
|
PHP_ME(Call, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR) |
|
|
|
|
PHP_ME(Call, server_accept, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, server_end_initial_metadata, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, add_metadata, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, cancel, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, start_invoke, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, start_read, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, start_write, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, start_write_status, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, add_metadata, NULL, ZEND_ACC_PUBLIC) PHP_ME( |
|
|
|
|
Call, cancel, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, start_invoke, NULL, ZEND_ACC_PUBLIC) PHP_ME( |
|
|
|
|
Call, start_read, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, start_write, NULL, ZEND_ACC_PUBLIC) PHP_ME( |
|
|
|
|
Call, start_write_status, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_ME(Call, writes_done, NULL, ZEND_ACC_PUBLIC) |
|
|
|
|
PHP_FE_END |
|
|
|
|
}; |
|
|
|
|
PHP_FE_END}; |
|
|
|
|
|
|
|
|
|
void grpc_init_call(TSRMLS_D) { |
|
|
|
|
zend_class_entry ce; |
|
|
|
|