summaryrefslogtreecommitdiff
path: root/ext/rpc/handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/rpc/handler.h')
-rw-r--r--ext/rpc/handler.h21
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 {