--- libaitrpc/inc/aitrpc.h 2010/06/23 15:07:15 1.1.1.1.2.6 +++ libaitrpc/inc/aitrpc.h 2010/06/23 17:29:07 1.1.1.1.2.9 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitrpc.h,v 1.1.1.1.2.6 2010/06/23 15:07:15 misho Exp $ +* $Id: aitrpc.h,v 1.1.1.1.2.9 2010/06/23 17:29:07 misho Exp $ * *************************************************************************/ #ifndef __AITRPC_H @@ -19,8 +19,6 @@ #include -#define STRSIZ 256 - #define RPC_VERSION 1 #define RPC_DEFPORT 2611 @@ -49,8 +47,9 @@ typedef enum { } rpc_type_t; typedef enum { - disable, enable, - get, set, unset + disable, enable, // for blob.state + ok, error, // for blob reply + get, set, unset // for blob request } cmd_type_t; /* RPC value */ @@ -240,8 +239,6 @@ typedef struct { // BLOB registration element! typedef struct tagBLOB { - rpc_cli_t *blob_cli; // from RPC client - uint32_t blob_var; size_t blob_len; // size of allocated BLOB data @@ -422,6 +419,42 @@ inline int rpc_srv_delValsCall(rpc_func_t * __restrict * return: -1 error, !=-1 Number of returned variables */ inline int rpc_srv_getValsCall(rpc_func_t * __restrict call, rpc_val_t ** __restrict vals); + + +/* + * rpc_srv_blobMap() Map blob to memory region + * @srv = RPC Server instance + * @blob = Map to this BLOB element + * return: -1 error or 0 ok + */ +inline int rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t * __restrict blob); +/* + * rpc_srv_blobUnmap() Unmap blob memory region + * @blob = Mapped BLOB element + * return: none + */ +inline void rpc_srv_blobUnmap(rpc_blob_t * __restrict blob); +/* + * rpc_srv_blobFree() Free blob from disk & memory + * @srv = RPC Server instance + * @blob = Mapped BLOB element + * return: -1 error or 0 ok + */ +inline int rpc_srv_blobFree(rpc_srv_t * __restrict srv, rpc_blob_t * __restrict blob); + +/* + * rpc_srv_sendBLOB() Send mapped BLOB to client + * @cli = Client instance + * @blob = Mapped BLOB element + * return: -1 error, 0 ok + */ +int rpc_srv_sendBLOB(rpc_cli_t * __restrict cli, rpc_blob_t * __restrict blob); +/* + * rpc_srv_recvBLOB() Receive BLOB from client + * @cli = Client instance + * return: -1 error, 0 ok + */ +int rpc_srv_recvBLOB(rpc_cli_t * __restrict cli); /* RPC Client side functions */