diff options
author | Harald Radi <phanto@php.net> | 2002-03-19 18:46:28 +0000 |
---|---|---|
committer | Harald Radi <phanto@php.net> | 2002-03-19 18:46:28 +0000 |
commit | cb2368c90553c0ecad48a2241d865a548d26445d (patch) | |
tree | 5cbcc8378c65576f23601e4fa629365d2ba50284 /ext/rpc/handler.h | |
parent | 5280936895b578107038a668b9654a92558f8bed (diff) | |
download | php-git-cb2368c90553c0ecad48a2241d865a548d26445d.tar.gz |
fixed memleaks
added method lookup caching
pass function signature to hash function callback
Diffstat (limited to 'ext/rpc/handler.h')
-rw-r--r-- | ext/rpc/handler.h | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/ext/rpc/handler.h b/ext/rpc/handler.h index 1942ca1c4c..bc3e9b34d2 100644 --- a/ext/rpc/handler.h +++ b/ext/rpc/handler.h @@ -37,9 +37,13 @@ #define POOL TRUE #define DONT_POOL FALSE -#define HASH_AS_INT TRUE -#define HASH_AS_STRING FALSE -#define DONT_HASH FALSE + +#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 @@ -51,11 +55,11 @@ */ typedef struct _rpc_object_handlers { const zend_bool pool_instances; - const int hash_type; - int (*rpc_hash)(char *name, zend_uint name_len, char **hash, zend_uint *hash_len, int type); + const zend_uint hash_type; + int (*rpc_hash)(char *name, zend_uint name_len, char **hash, zend_uint *hash_len, int num_args, zval **args[], int type); int (*rpc_ctor)(char *class_name, zend_uint class_name_len, void **data, int num_args, zval **args[]); int (*rpc_dtor)(void **data); - int (*rpc_call)(char *method_name, zend_uint method_name_len, void **data, INTERNAL_FUNCTION_PARAMETERS); + int (*rpc_call)(char *method_name, zend_uint method_name_len, void **data, zval **return_value, int num_args, zval **args[]); int (*rpc_get)(char *property_name, zend_uint property_name_len, zval *return_value, void **data); int (*rpc_set)(char *property_name, zend_uint property_name_len, zval *value, zval *return_value, void **data); int (*rpc_compare)(void **data1, void **data2); @@ -99,6 +103,7 @@ typedef struct _rpc_internal { zend_uint clonecount; zend_bool pool_instances; rpc_class_hash *hash; + WormHashTable function_table; MUTEX_T mx_handler; } rpc_internal; |