version 1.14.2.1, 2013/07/15 14:54:40
|
version 1.14.2.2, 2013/07/15 15:10:38
|
Line 184 toutBLOB(sched_task_t *task)
|
Line 184 toutBLOB(sched_task_t *task)
|
* @srv = RPC Server instance |
* @srv = RPC Server instance |
* @len = BLOB length |
* @len = BLOB length |
* @tout = BLOB live timeout in seconds |
* @tout = BLOB live timeout in seconds |
* @task = task called this function | * @c = RPC Client |
* 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, int tout, |
rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_t len, int tout, |
sched_task_t * __restrict task) | rpc_cli_t * __restrict c) |
{ |
{ |
rpc_blob_t *blob = NULL; |
rpc_blob_t *blob = NULL; |
struct timespec ts = { tout ? tout : RPC_BLOB_TIMEOUT, 0 }; |
struct timespec ts = { tout ? tout : RPC_BLOB_TIMEOUT, 0 }; |
|
|
if (!srv || !len) { | if (!srv || !len || !c) { |
rpc_SetErr(EINVAL, "Invalid parameter can`t register BLOB variable"); |
rpc_SetErr(EINVAL, "Invalid parameter can`t register BLOB variable"); |
return blob; |
return blob; |
} |
} |
Line 203 rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_
|
Line 203 rpc_srv_registerBLOB(rpc_srv_t * __restrict srv, size_
|
|
|
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, | schedTimer(srv->srv_blob.root, toutBLOB, c, ts, |
(void*) (intptr_t) blob->blob_var, blob->blob_len); |
(void*) (intptr_t) blob->blob_var, blob->blob_len); |
return blob; |
return blob; |
} |
} |
Line 230 rpc_srv_unregisterBLOB(rpc_srv_t * __restrict srv, uin
|
Line 230 rpc_srv_unregisterBLOB(rpc_srv_t * __restrict srv, uin
|
return 0; |
return 0; |
|
|
TAILQ_REMOVE(&srv->srv_blob.blobs, b, blob_node); |
TAILQ_REMOVE(&srv->srv_blob.blobs, b, blob_node); |
|
|
|
schedCancelby(srv->srv_blob.root, taskTIMER, CRITERIA_DATA, |
|
(void*) (intptr_t) b->blob_var, NULL); |
|
|
rpc_srv_blobFree(srv, b); |
rpc_srv_blobFree(srv, b); |
e_free(b); |
e_free(b); |