--- libaitrpc/inc/aitrpc.h 2011/08/31 17:11:58 1.3.2.4 +++ libaitrpc/inc/aitrpc.h 2011/09/01 11:39:26 1.3.2.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitrpc.h,v 1.3.2.4 2011/08/31 17:11:58 misho Exp $ +* $Id: aitrpc.h,v 1.3.2.5 2011/09/01 11:39:26 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -94,7 +94,7 @@ typedef enum { } while (0) #define RPC_CALLBACK_CHK_ARGS(_f, _n) do { \ RPC_CALLBACK_CHECK_INPUT((_f)); \ - if ((_f) && (_f)->func_args != _n) { \ + if ((_f) && io_arraySize((_f)->func_vars) != _n) { \ rpc_SetErr(22, "Error:: different number of arguments!\n"); \ return -1; \ } \ @@ -119,7 +119,6 @@ typedef struct tagRPCFunc { int8_t func_file[MAXPATHLEN]; int8_t func_name[UCHAR_MAX + 1]; - uint16_t func_args; array_t *func_vars; void *func_parent; @@ -321,14 +320,6 @@ int rpc_srv_execCall(rpc_func_t * __restrict call, str /* - * rpc_srv_returnVars() Init return variables for RPC call and zeroed values - (for safe handling return values, use this!) - * @call = RPC function call - * @varnum = Number of return variables - * return: NULL error, !=NULL array with return values for RPC call with varnum items - */ -inline array_t *rpc_srv_returnVars(rpc_func_t * __restrict call, int varnum); -/* * rpc_srv_allocVars() Allocate array for call variables, if already allocated memory for RPC call reallocate used space * @call = RPC function call @@ -336,13 +327,18 @@ inline array_t *rpc_srv_returnVars(rpc_func_t * __rest * return: -1 error, !=-1 return varnum value */ inline int rpc_srv_allocVars(rpc_func_t * __restrict call, int varnum); -#define rpc_srv_freeVars(_call) (assert((_call)), rpc_srv_allocVars((_call), 0)) /* - * rpc_srv_zeroVars() Clean values from variables of RPC call + * rpc_srv_destroyVars() Destroy variables of array & array * @call = RPC function call - * return: -1 error, !=-1 Returned number of cleaned RPC variables + * return: -1 error, !=-1 Returne remained variables */ -inline int rpc_srv_zeroVars(rpc_func_t * __restrict call); +inline int rpc_srv_destroyVars(rpc_func_t * __restrict call); +/* + * rpc_srv_freeVals() Clean values from variables of array + * @call = RPC function call + * return: -1 error, !=-1 Returned number of cleaned variables + */ +inline int rpc_srv_freeVals(rpc_func_t * __restrict call); /* * rpc_srv_copyVars() Copy variables for RPC call to new variable array * @call = RPC function call