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.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/ext/rpc/handler.h b/ext/rpc/handler.h
new file mode 100644
index 0000000000..cb13c90a49
--- /dev/null
+++ b/ext/rpc/handler.h
@@ -0,0 +1,25 @@
+#ifndef HANDLER_H
+#define HANDLER_H
+
+#include "php.h"
+
+#define RPC_HANDLER(layer) {#layer, layer##_handler_init, &layer##_object_handlers, &layer##_class_entry}
+#define RPC_DECLARE_HANDLER(layer) void layer##_handler_init(); \
+ rpc_object_handlers layer##_object_handlers; \
+ zend_class_entry layer##_class_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;
+
+typedef struct _rpc_object_handlers {
+ int i;
+} rpc_object_handlers;
+
+typedef struct _rpc_handler_entry {
+ char *name;
+ void (*rpc_handler_init)();
+ rpc_object_handlers *handlers;
+ zend_class_entry *ce;
+} rpc_handler_entry;
+
+#endif /* HANDLER_H */ \ No newline at end of file