diff options
Diffstat (limited to 'ext/rpc/handler.h')
-rw-r--r-- | ext/rpc/handler.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/ext/rpc/handler.h b/ext/rpc/handler.h index 02c0b5e83c..3e60ba77f4 100644 --- a/ext/rpc/handler.h +++ b/ext/rpc/handler.h @@ -3,13 +3,27 @@ #include "php.h" -#define RPC_HANDLER(layer) {#layer, layer##_handler_init, &layer##_object_handlers, &layer##_class_entry} +#define RPC_HANDLER(layer) {#layer, layer##_handler_init, &layer##_object_handlers, &layer##_class_entry, layer##_function_entry} + #define RPC_DECLARE_HANDLER(layer) void layer##_handler_init(); \ rpc_object_handlers layer##_object_handlers; \ - zend_class_entry layer##_class_entry; + zend_class_entry layer##_class_entry; \ + function_entry layer##_function_entry[]; + #define RPC_INIT_FUNCTION(layer) void layer##_handler_init() + #define RPC_REGISTER_HANDLERS(layer) zend_class_entry layer##_class_entry; \ - rpc_object_handlers layer##object_handlers; + rpc_object_handlers layer##_object_handlers; \ + + +#define RPC_FUNCTION_ENTRY_START(layer) function_entry layer##_function_entry[] = { \ + PHP_FALIAS(layer##_load, rpc_load, NULL) \ + PHP_FALIAS(layer##_call, rpc_call, NULL) \ + PHP_FALIAS(layer##_get, rpc_get, NULL) \ + PHP_FALIAS(layer##_set, rpc_set, NULL) + +#define RPC_FUNCTION_ENTRY_END() {NULL, NULL, NULL} \ + }; typedef struct _rpc_object_handlers { @@ -21,6 +35,7 @@ typedef struct _rpc_handler_entry { void (*rpc_handler_init)(); rpc_object_handlers *handlers; zend_class_entry *ce; + function_entry *functions; } rpc_handler_entry; typedef struct _rpc_internal { |