| #include "call.h" |
| #include "channel.h" |
| #include "server.h" |
| #include "completion_queue.h" |
| #include "event.h" |
| #include "timeval.h" |
| #include "credentials.h" |
| #include "server_credentials.h" |
| |
| #ifdef HAVE_CONFIG_H |
| #include "config.h" |
| #endif |
| |
| #include "php.h" |
| #include "php_ini.h" |
| #include "ext/standard/info.h" |
| #include "php_grpc.h" |
| |
| // ZEND_DECLARE_MODULE_GLOBALS(grpc) |
| |
| /* {{{ grpc_functions[] |
| * |
| * Every user visible function must have an entry in grpc_functions[]. |
| */ |
| const zend_function_entry grpc_functions[] = { |
| PHP_FE_END /* Must be the last line in grpc_functions[] */ |
| }; |
| /* }}} */ |
| |
| /* {{{ grpc_module_entry |
| */ |
| zend_module_entry grpc_module_entry = { |
| #if ZEND_MODULE_API_NO >= 20010901 |
| STANDARD_MODULE_HEADER, |
| #endif |
| "grpc", grpc_functions, PHP_MINIT(grpc), PHP_MSHUTDOWN(grpc), NULL, NULL, |
| PHP_MINFO(grpc), |
| #if ZEND_MODULE_API_NO >= 20010901 |
| PHP_GRPC_VERSION, |
| #endif |
| STANDARD_MODULE_PROPERTIES}; |
| /* }}} */ |
| |
| #ifdef COMPILE_DL_GRPC |
| ZEND_GET_MODULE(grpc) |
| #endif |
| |
| /* {{{ PHP_INI |
| */ |
| /* Remove comments and fill if you need to have entries in php.ini |
| PHP_INI_BEGIN() |
| STD_PHP_INI_ENTRY("grpc.global_value", "42", PHP_INI_ALL, OnUpdateLong, |
| global_value, zend_grpc_globals, grpc_globals) |
| STD_PHP_INI_ENTRY("grpc.global_string", "foobar", PHP_INI_ALL, |
| OnUpdateString, global_string, zend_grpc_globals, grpc_globals) |
| PHP_INI_END() |
| */ |
| /* }}} */ |
| |
| /* {{{ php_grpc_init_globals |
| */ |
| /* Uncomment this function if you have INI entries |
| static void php_grpc_init_globals(zend_grpc_globals *grpc_globals) |
| { |
| grpc_globals->global_value = 0; |
| grpc_globals->global_string = NULL; |
| } |
| */ |
| /* }}} */ |
| |
| /* {{{ PHP_MINIT_FUNCTION |
| */ |
| PHP_MINIT_FUNCTION(grpc) { |
| /* If you have INI entries, uncomment these lines |
| REGISTER_INI_ENTRIES(); |
| */ |
| /* Register call error constants */ |
| grpc_init(); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_OK", GRPC_CALL_OK, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR", GRPC_CALL_ERROR, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_NOT_ON_SERVER", |
| GRPC_CALL_ERROR_NOT_ON_SERVER, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_NOT_ON_CLIENT", |
| GRPC_CALL_ERROR_NOT_ON_CLIENT, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_ALREADY_INVOKED", |
| GRPC_CALL_ERROR_ALREADY_INVOKED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_NOT_INVOKED", |
| GRPC_CALL_ERROR_NOT_INVOKED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_ALREADY_FINISHED", |
| GRPC_CALL_ERROR_ALREADY_FINISHED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_TOO_MANY_OPERATIONS", |
| GRPC_CALL_ERROR_TOO_MANY_OPERATIONS, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CALL_ERROR_INVALID_FLAGS", |
| GRPC_CALL_ERROR_INVALID_FLAGS, CONST_CS); |
| |
| /* Register op error constants */ |
| REGISTER_LONG_CONSTANT("Grpc\\OP_OK", GRPC_OP_OK, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\OP_ERROR", GRPC_OP_ERROR, CONST_CS); |
| |
| /* Register flag constants */ |
| REGISTER_LONG_CONSTANT("Grpc\\WRITE_BUFFER_HINT", GRPC_WRITE_BUFFER_HINT, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\WRITE_NO_COMPRESS", GRPC_WRITE_NO_COMPRESS, |
| CONST_CS); |
| |
| /* Register completion type constants */ |
| REGISTER_LONG_CONSTANT("Grpc\\QUEUE_SHUTDOWN", GRPC_QUEUE_SHUTDOWN, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\READ", GRPC_READ, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\INVOKE_ACCEPTED", GRPC_INVOKE_ACCEPTED, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\WRITE_ACCEPTED", GRPC_WRITE_ACCEPTED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\FINISH_ACCEPTED", GRPC_FINISH_ACCEPTED, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\CLIENT_METADATA_READ", |
| GRPC_CLIENT_METADATA_READ, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\FINISHED", GRPC_FINISHED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\SERVER_RPC_NEW", GRPC_SERVER_RPC_NEW, CONST_CS); |
| |
| /* Register status constants */ |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_OK", GRPC_STATUS_OK, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_CANCELLED", GRPC_STATUS_CANCELLED, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNKNOWN", GRPC_STATUS_UNKNOWN, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_INVALID_ARGUMENT", |
| GRPC_STATUS_INVALID_ARGUMENT, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_DEADLINE_EXCEEDED", |
| GRPC_STATUS_DEADLINE_EXCEEDED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_NOT_FOUND", GRPC_STATUS_NOT_FOUND, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_ALREADY_EXISTS", |
| GRPC_STATUS_ALREADY_EXISTS, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_PERMISSION_DENIED", |
| GRPC_STATUS_PERMISSION_DENIED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNAUTHENTICATED", |
| GRPC_STATUS_UNAUTHENTICATED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_RESOURCE_EXHAUSTED", |
| GRPC_STATUS_RESOURCE_EXHAUSTED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_FAILED_PRECONDITION", |
| GRPC_STATUS_FAILED_PRECONDITION, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_ABORTED", GRPC_STATUS_ABORTED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_OUT_OF_RANGE", GRPC_STATUS_OUT_OF_RANGE, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNIMPLEMENTED", |
| GRPC_STATUS_UNIMPLEMENTED, CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_INTERNAL", GRPC_STATUS_INTERNAL, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_UNAVAILABLE", GRPC_STATUS_UNAVAILABLE, |
| CONST_CS); |
| REGISTER_LONG_CONSTANT("Grpc\\STATUS_DATA_LOSS", GRPC_STATUS_DATA_LOSS, |
| CONST_CS); |
| |
| grpc_init_call(TSRMLS_C); |
| grpc_init_channel(TSRMLS_C); |
| grpc_init_server(TSRMLS_C); |
| grpc_init_completion_queue(TSRMLS_C); |
| grpc_init_timeval(TSRMLS_C); |
| grpc_init_credentials(TSRMLS_C); |
| grpc_init_server_credentials(TSRMLS_C); |
| return SUCCESS; |
| } |
| /* }}} */ |
| |
| /* {{{ PHP_MSHUTDOWN_FUNCTION |
| */ |
| PHP_MSHUTDOWN_FUNCTION(grpc) { |
| /* uncomment this line if you have INI entries |
| UNREGISTER_INI_ENTRIES(); |
| */ |
| grpc_shutdown_timeval(TSRMLS_C); |
| grpc_shutdown(); |
| return SUCCESS; |
| } |
| /* }}} */ |
| |
| /* {{{ PHP_MINFO_FUNCTION |
| */ |
| PHP_MINFO_FUNCTION(grpc) { |
| php_info_print_table_start(); |
| php_info_print_table_header(2, "grpc support", "enabled"); |
| php_info_print_table_end(); |
| |
| /* Remove comments if you have entries in php.ini |
| DISPLAY_INI_ENTRIES(); |
| */ |
| } |
| /* }}} */ |
| /* The previous line is meant for vim and emacs, so it can correctly fold and |
| unfold functions in source code. See the corresponding marks just before |
| function definition, where the functions purpose is also documented. Please |
| follow this convention for the convenience of others editing your code. |
| */ |
| |
| /* |
| * Local variables: |
| * tab-width: 4 |
| * c-basic-offset: 4 |
| * End: |
| * vim600: noet sw=4 ts=4 fdm=marker |
| * vim<600: noet sw=4 ts=4 |
| */ |