version 1.10.2.1, 2012/11/05 15:57:35
|
version 1.10.2.2, 2012/11/13 09:21:27
|
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 */ |