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.h144
1 files changed, 0 insertions, 144 deletions
diff --git a/ext/rpc/handler.h b/ext/rpc/handler.h
deleted file mode 100644
index cbb868265c..0000000000
--- a/ext/rpc/handler.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | PHP Version 4 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2003 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 2.02 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available at through the world-wide-web at |
- | http://www.php.net/license/2_02.txt. |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: Harald Radi <h.radi@nme.at> |
- +----------------------------------------------------------------------+
- */
-
-#ifndef HANDLER_H
-#define HANDLER_H
-
-#include "php.h"
-#include "php_ini.h"
-
-#define RPC_REGISTER_LAYER(layer) rpc_register_layer(&layer##_handler_entry TSRMLS_CC);
-#define RPC_DECLARE_HANDLER(layer) rpc_object_handlers layer##_object_handlers; \
- zend_class_entry *layer##_class_entry; \
- function_entry layer##_function_entry[]; \
- function_entry layer##_method_entry[]; \
- static rpc_handler_entry layer##_handler_entry = \
- {#layer, &layer##_object_handlers, &layer##_class_entry,\
- layer##_function_entry, layer##_method_entry}
-
-#define RPC_REGISTER_HANDLERS_BEGIN(layer) zend_class_entry *layer##_class_entry; \
- rpc_object_handlers layer##_object_handlers = {
-
-#define RPC_REGISTER_HANDLERS_END() };
-
-#define RPC_FUNCTION_ENTRY(layer) layer##_function_entry
-#define RPC_FUNCTION_ENTRY_BEGIN(layer) function_entry layer##_function_entry[] = { \
- ZEND_FALIAS(layer##_load, rpc_load, NULL) \
- ZEND_FALIAS(layer##_call, rpc_call, NULL) \
- ZEND_FALIAS(layer##_get, rpc_get, NULL) \
- ZEND_FALIAS(layer##_set, rpc_get, NULL) \
- ZEND_FALIAS(layer##_singleton, rpc_singleton, NULL) \
- ZEND_FALIAS(layer##_poolable, rpc_poolable, NULL)
-
-#define RPC_FUNCTION_ENTRY_END() {NULL, NULL, NULL} \
- };
-
-#define RPC_METHOD_ENTRY_BEGIN(layer) function_entry layer##_method_entry[] = {
-
-#define RPC_METHOD_ENTRY_END() {NULL, NULL, NULL} \
- };
-
-#define DONT_HASH 0
-#define HASH_AS_INT 1
-#define HASH_AS_STRING 2
-#define HASH_WITH_SIGNATURE 4
-#define HASH_AS_INT_WITH_SIGNATURE (HASH_AS_INT & HASH_WITH_SIGNATURE)
-#define HASH_AS_STRING_WITH_SIGNATURE (HASH_AS_STRING & HASH_WITH_SIGNATURE)
-
-#define CLASS 0
-#define METHOD 1
-#define PROPERTY 2
-
-
-/* string */
-typedef struct _rpc_string {
- char *str;
- zend_uint len;
-} rpc_string;
-
-/* rpc handler that have to be implemented by a
- * specific rpc layer
- */
-typedef struct _rpc_object_handlers {
- const zend_bool poolable;
- const zend_uint hash_type;
- int (*rpc_hash)(rpc_string name, rpc_string *hash, void *data, int num_args, char *arg_types, int type);
- int (*rpc_name)(rpc_string hash, rpc_string *name, void *data, int type);
- int (*rpc_ctor)(rpc_string class_name, void **data, int num_args, zval **args[]);
- int (*rpc_dtor)(void *data);
- int (*rpc_describe)(rpc_string method_name, void *data, char **arg_types, unsigned char **ref_types);
- int (*rpc_call)(rpc_string method_name, void *data, zval *return_value, int num_args, zval **args[]);
- int (*rpc_get)(rpc_string property_name, zval *return_value, void *data);
- int (*rpc_set)(rpc_string property_name, zval *value, void *data);
- int (*rpc_compare)(void *data1, void *data2);
- int (*rpc_has_property)(rpc_string property_name, void *data);
- int (*rpc_unset_property)(rpc_string property_name, void *data);
- int (*rpc_get_properties)(HashTable **properties, void *data);
-} rpc_object_handlers;
-
-/* handler entry */
-typedef struct _rpc_handler_entry {
- char *name;
- rpc_object_handlers *handlers;
- zend_class_entry **ce;
- function_entry *functions;
- function_entry *methods;
-} rpc_handler_entry;
-
-/* class/method/function hash */
-typedef struct _rpc_class_hash {
- rpc_string name; /* must be first entry */
- zend_bool poolable;
- zend_bool singleton;
- TsHashTable methods;
- TsHashTable properties;
- rpc_object_handlers **handlers;
- zend_class_entry *ce;
- void *data;
-} rpc_class_hash;
-
-/* internal data */
-typedef struct _rpc_internal {
- MUTEX_T mx_handler;
- TsHashTable function_table;
- zend_bool free_function_table;
- rpc_object_handlers **handlers;
- rpc_class_hash *hash;
- zend_class_entry *ce;
- void *data;
-} rpc_internal;
-
-/* proxy data */
-typedef struct _rpc_proxy {
- zend_uint dummy;
-} rpc_proxy;
-
-
-ZEND_API ZEND_FUNCTION(rpc_load);
-ZEND_API ZEND_FUNCTION(rpc_call);
-ZEND_API ZEND_FUNCTION(rpc_set);
-ZEND_API ZEND_FUNCTION(rpc_get);
-ZEND_API ZEND_FUNCTION(rpc_singleton);
-ZEND_API ZEND_FUNCTION(rpc_poolable);
-
-ZEND_API rpc_register_layer(rpc_handler_entry *entry TSRMLS_DC);
-ZEND_API zval* _rpc_object_from_data(zval *z, rpc_handler_entry *handler, void *data, rpc_class_hash *class_hash);
-#define rpc_object_from_data(layer, data) rpc_object_from_data_ex(NULL, layer, data, NULL)
-#define rpc_object_from_data_ex(z, layer, data, class_hash) _rpc_object_from_data((z), &layer##_handler_entry, (data), (class_hash))
-
-#endif /* HANDLER_H */ \ No newline at end of file