|
|
| version 1.10, 2012/07/22 20:44:13 | version 1.11, 2012/11/13 09:22:10 |
|---|---|
| Line 159 typedef struct tagRPCFunc { | Line 159 typedef struct tagRPCFunc { |
| ait_val_t func_name; | ait_val_t func_name; |
| void *func_parent; | void *func_parent; |
| TAILQ_ENTRY(tagRPCFunc) func_node; | |
| SLIST_ENTRY(tagRPCFunc) func_next; | |
| AVL_ENTRY(tagRPCFunc) func_node; | |
| } rpc_func_t; | } rpc_func_t; |
| #define RPC_FUNC_SERVER(x) ((rpc_srv_t*) (x)->func_parent) | #define RPC_FUNC_SERVER(x) ((rpc_srv_t*) (x)->func_parent) |
| /* Tree root node */ | |
| typedef struct tagRPCFuncs { | |
| pthread_mutex_t mtx; | |
| struct tagRPCFunc *slh_first; | |
| struct tagRPCFunc *avlh_root; | |
| } rpc_funcs_t; | |
| #define RPC_FUNCS_LOCK(x) pthread_mutex_lock(&(x)->mtx) | |
| #define RPC_FUNCS_UNLOCK(x) pthread_mutex_unlock(&(x)->mtx) | |
| #define RPC_FUNCS_ISEMPTY(x) AVL_EMPTY((x)) | |
| /* BLOB register element */ | /* BLOB register element */ |
| typedef struct tagBLOB { | typedef struct tagBLOB { |
| uint32_t blob_var; /* BLOB id */ | uint32_t blob_var; /* BLOB id */ |
| Line 200 typedef struct { | Line 213 typedef struct { |
| rpc_cli_t srv_server; /* RPC server socket */ | rpc_cli_t srv_server; /* RPC server socket */ |
| array_t *srv_clients; /* connected rpc client sockets */ | array_t *srv_clients; /* connected rpc client sockets */ |
| TAILQ_HEAD(, tagRPCFunc) srv_funcs; /* RPC functions list */ | rpc_funcs_t srv_funcs; /* RPC functions */ |
| struct { | struct { |
| pthread_t tid; /* BLOB exec pthread */ | pthread_t tid; /* BLOB exec pthread */ |
| Line 534 void rpc_cli_closeClient(rpc_cli_t ** __restrict cli); | Line 547 void rpc_cli_closeClient(rpc_cli_t ** __restrict cli); |
| */ | */ |
| int rpc_cli_execCall(rpc_cli_t *cli, int noreply, unsigned short tag, | int rpc_cli_execCall(rpc_cli_t *cli, int noreply, unsigned short tag, |
| array_t * __restrict in_vars, array_t ** __restrict out_vars); | array_t * __restrict in_vars, array_t ** __restrict out_vars); |
| /* | |
| * rpc_cli_freeCall() - Free resouce allocated by RPC call | |
| * | |
| * @out_vars = Returned array with variables from RPC call | |
| * return: none | |
| */ | |
| inline void rpc_cli_freeCall(array_t ** __restrict out_vars); | |
| /* | /* |
| * rpc_cli_ping() - Ping RPC server | * rpc_cli_ping() - Ping RPC server |
| * | * |