--- libaitrpc/inc/aitrpc.h 2013/07/15 14:27:28 1.15.2.2 +++ libaitrpc/inc/aitrpc.h 2013/08/20 23:25:18 1.17.2.1 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitrpc.h,v 1.15.2.2 2013/07/15 14:27:28 misho Exp $ +* $Id: aitrpc.h,v 1.17.2.1 2013/08/20 23:25:18 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -85,6 +85,8 @@ SUCH DAMAGE. #define CALL_BLOBCLIENTS 65528 #define CALL_BLOBVARS 65527 +/* RPC signals */ +#define SIGFBLOB 54 /* RPC types */ @@ -196,7 +198,7 @@ typedef struct { int cli_id; /* slot id */ int cli_sock; /* socket fd */ sockaddr_t cli_sa; /* host address */ - ait_val_t cli_buf; /* network buffer */ + array_t *cli_buf; /* network buffer(s) */ array_t *cli_vars; /* function return variables */ @@ -254,8 +256,11 @@ typedef int (*rpc_callback_t)(rpc_cli_t *, struct tagR int rpc_GetErrno(); // rpc_GetError() Get error text of last operation const char *rpc_GetError(); +// rpc_SetErr() Set error to variables for internal use!!! +void rpc_SetErr(int eno, char *estr, ...); + /* * rpc_chkPktSession() - Check RPC session * @@ -409,9 +414,10 @@ int rpc_srv_execCall(rpc_cli_t * __restrict cli, struc * * @srv = RPC Server instance * @len = BLOB length object + * @tout = BLOB live timeout in seconds * return: NULL error or !=NULL allocated BLOB object */ -rpc_blob_t *rpc_srv_blobCreate(rpc_srv_t * __restrict srv, int len); +rpc_blob_t *rpc_srv_blobCreate(rpc_srv_t * __restrict srv, int len, int tout); /* * rpc_srv_blobMap() - Map blob to memory region * @@ -441,9 +447,10 @@ int rpc_srv_blobFree(rpc_srv_t * __restrict srv, rpc_b * * @srv = RPC Server instance * @len = BLOB length + * @tout = BLOB live timeout in seconds * return: NULL error or new registered BLOB */ -rpc_blob_t *rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_t len); +rpc_blob_t *rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_t len, int tout); /* * rpc_srv_unregisterBLOB() - Unregister BLOB from server *