version 1.13, 2013/03/07 23:10:50
|
version 1.14.2.1, 2013/07/15 14:54:40
|
Line 127 rpc_srv_unregisterCall(rpc_srv_t * __restrict srv, u_s
|
Line 127 rpc_srv_unregisterCall(rpc_srv_t * __restrict srv, u_s
|
* @tag = tag for function |
* @tag = tag for function |
* return: NULL not found call, !=NULL return call |
* return: NULL not found call, !=NULL return call |
*/ |
*/ |
inline rpc_func_t * | rpc_func_t * |
rpc_srv_getCall(rpc_srv_t * __restrict srv, uint16_t tag) |
rpc_srv_getCall(rpc_srv_t * __restrict srv, uint16_t tag) |
{ |
{ |
rpc_func_t tmp; |
rpc_func_t tmp; |
Line 151 rpc_srv_getCall(rpc_srv_t * __restrict srv, uint16_t t
|
Line 151 rpc_srv_getCall(rpc_srv_t * __restrict srv, uint16_t t
|
* @var = hash for variable |
* @var = hash for variable |
* return: NULL not found, !=NULL return blob var |
* return: NULL not found, !=NULL return blob var |
*/ |
*/ |
inline rpc_blob_t * | rpc_blob_t * |
rpc_srv_getBLOB(rpc_srv_t * __restrict srv, uint32_t var) |
rpc_srv_getBLOB(rpc_srv_t * __restrict srv, uint32_t var) |
{ |
{ |
rpc_blob_t *b, *tmp; |
rpc_blob_t *b, *tmp; |
Line 168 rpc_srv_getBLOB(rpc_srv_t * __restrict srv, uint32_t v
|
Line 168 rpc_srv_getBLOB(rpc_srv_t * __restrict srv, uint32_t v
|
return b; |
return b; |
} |
} |
|
|
|
static void * |
|
toutBLOB(sched_task_t *task) |
|
{ |
|
rpc_cli_t *c = TASK_ARG(task); |
|
|
|
rpc_srv_unregisterBLOB((rpc_srv_t*) c->cli_parent, (uint32_t) TASK_DATA(task)); |
|
|
|
return NULL; |
|
} |
|
|
/* |
/* |
* rpc_srv_registerBLOB() - Register new BLOB to server |
* rpc_srv_registerBLOB() - Register new BLOB to server |
* |
* |
* @srv = RPC Server instance |
* @srv = RPC Server instance |
* @len = BLOB length |
* @len = BLOB length |
|
* @tout = BLOB live timeout in seconds |
|
* @task = task called this function |
* return: NULL error or new registered BLOB |
* return: NULL error or new registered BLOB |
*/ |
*/ |
rpc_blob_t * |
rpc_blob_t * |
rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_t len) | rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_t len, int tout, |
| sched_task_t * __restrict task) |
{ |
{ |
rpc_blob_t *blob = NULL; |
rpc_blob_t *blob = NULL; |
|
struct timespec ts = { tout ? tout : RPC_BLOB_TIMEOUT, 0 }; |
|
|
if (!srv || !len) { |
if (!srv || !len) { |
rpc_SetErr(EINVAL, "Invalid parameter can`t register BLOB variable"); |
rpc_SetErr(EINVAL, "Invalid parameter can`t register BLOB variable"); |
Line 188 rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_
|
Line 202 rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_
|
blob = rpc_srv_blobCreate(srv, len); |
blob = rpc_srv_blobCreate(srv, len); |
|
|
TAILQ_INSERT_TAIL(&srv->srv_blob.blobs, blob, blob_node); |
TAILQ_INSERT_TAIL(&srv->srv_blob.blobs, blob, blob_node); |
|
|
|
schedTimer(TASK_ROOT(task), toutBLOB, TASK_ARG(task), ts, |
|
(void*) (intptr_t) blob->blob_var, blob->blob_len); |
return blob; |
return blob; |
} |
} |
|
|