diff options
author | SVN Migration <svn@php.net> | 2003-02-27 17:43:39 +0000 |
---|---|---|
committer | SVN Migration <svn@php.net> | 2003-02-27 17:43:39 +0000 |
commit | 078bcec0997ad0e07b720c43cc9e6d0e046a75ab (patch) | |
tree | 36cb0f6be2ef078fe3374de8c087b93ecf82f812 /ext/rpc/handler.h | |
parent | fd61f69077f6156ca71dde60ecfd9ed9765a02db (diff) | |
download | php-git-PHP-5.tar.gz |
This commit was manufactured by cvs2svn to create branch 'PHP_5'.PHP-5
Diffstat (limited to 'ext/rpc/handler.h')
-rw-r--r-- | ext/rpc/handler.h | 144 |
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 |