summaryrefslogtreecommitdiff
path: root/ext/rpc/handler.h
diff options
context:
space:
mode:
authorHarald Radi <phanto@php.net>2002-03-19 18:46:28 +0000
committerHarald Radi <phanto@php.net>2002-03-19 18:46:28 +0000
commitcb2368c90553c0ecad48a2241d865a548d26445d (patch)
tree5cbcc8378c65576f23601e4fa629365d2ba50284 /ext/rpc/handler.h
parent5280936895b578107038a668b9654a92558f8bed (diff)
downloadphp-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.h17
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;