[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r26474 - in gnunet/src: include testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r26474 - in gnunet/src: include testbed |
Date: |
Mon, 18 Mar 2013 14:11:36 +0100 |
Author: harsha
Date: 2013-03-18 14:11:36 +0100 (Mon, 18 Mar 2013)
New Revision: 26474
Modified:
gnunet/src/include/gnunet_testbed_service.h
gnunet/src/testbed/gnunet-service-testbed.c
gnunet/src/testbed/test_testbed_api.c
gnunet/src/testbed/test_testbed_api_2peers_1controller.c
gnunet/src/testbed/test_testbed_api_3peers_3controllers.c
gnunet/src/testbed/test_testbed_api_controllerlink.c
gnunet/src/testbed/test_testbed_api_testbed_run.c
gnunet/src/testbed/testbed_api.c
gnunet/src/testbed/testbed_api_peers.c
gnunet/src/testbed/testbed_api_services.c
gnunet/src/testbed/testbed_api_testbed.c
Log:
expose Operation and associated closure in every event
Modified: gnunet/src/include/gnunet_testbed_service.h
===================================================================
--- gnunet/src/include/gnunet_testbed_service.h 2013-03-18 12:11:12 UTC (rev
26473)
+++ gnunet/src/include/gnunet_testbed_service.h 2013-03-18 13:11:36 UTC (rev
26474)
@@ -252,11 +252,6 @@
*/
GNUNET_TESTBED_ET_OPERATION_FINISHED = 4,
- /**
- * The 'GNUNET_TESTBED_run' operation has been completed
- */
- GNUNET_TESTBED_ET_TESTBED_ONLINE = 5
-
};
@@ -306,6 +301,16 @@
enum GNUNET_TESTBED_EventType type;
/**
+ * Handle for the corresponding operation that generated this event
+ */
+ struct GNUNET_TESTBED_Operation *op;
+
+ /**
+ * Closure given while creating the above operation
+ */
+ void *op_cls;
+
+ /**
* Details about the event.
*/
union
@@ -381,19 +386,7 @@
*/
struct
{
-
/**
- * Handle for the operation that was finished.
- */
- struct GNUNET_TESTBED_Operation *operation;
-
- /**
- * Closure that was passed in when the event was
- * requested.
- */
- void *op_cls;
-
- /**
* Error message for the operation, NULL on success.
*/
const char *emsg;
@@ -406,32 +399,6 @@
} operation_finished;
- /**
- * Details about an testbed run completed event.
- */
- struct
- {
-
- /**
- * Error message for the operation, NULL on success.
- */
- const char *emsg;
-
- /**
- * Array of peers now running (valid until
- * 'GNUNET_TESTBED_testbed_stop' is called). Note that it is
- * not allowed to call 'GNUNET_TESTBED_peer_destroy' on peers
- * from this array.
- */
- struct GNUNET_TESTBED_Peer **peers;
-
- /**
- * Size of the 'peers' array.
- */
- unsigned int num_peers;
-
- } testbed_run_finished;
-
} details;
};
@@ -787,8 +754,8 @@
/**
* Start the given peer.
*
- * @param op_cls the closure for this operation; will be set in
- * event->details.operation_finished.op_cls when this operation fails.
+ * @param op_cls the closure for this operation; will be set in the event
+ * information
* @param peer peer to start
* @param pcc function to call upon completion
* @param pcc_cls closure for 'pcc'
@@ -806,13 +773,16 @@
* "GNUNET_TESTBED_peer_destroy" to fully clean up the
* state of the peer).
*
+ * @param op_cls the closure for this operation; will be set in the event
+ * information
* @param peer peer to stop
* @param pcc function to call upon completion
* @param pcc_cls closure for 'pcc'
* @return handle to the operation
*/
struct GNUNET_TESTBED_Operation *
-GNUNET_TESTBED_peer_stop (struct GNUNET_TESTBED_Peer *peer,
+GNUNET_TESTBED_peer_stop (void *op_cls,
+ struct GNUNET_TESTBED_Peer *peer,
GNUNET_TESTBED_PeerChurnCallback pcc,
void *pcc_cls);
Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2013-03-18 12:11:12 UTC (rev
26473)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2013-03-18 13:11:36 UTC (rev
26474)
@@ -861,10 +861,10 @@
/* We currently only get here when working on RegisteredHostContexts and
LCFContexts */
GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
- rhc = event->details.operation_finished.op_cls;
+ rhc = event->op_cls;
if (CLOSURE_TYPE_RHC == rhc->type)
{
- GNUNET_assert (rhc->sub_op == event->details.operation_finished.operation);
+ GNUNET_assert (rhc->sub_op == event->op);
switch (rhc->state)
{
case RHC_GET_CFG:
@@ -889,10 +889,10 @@
}
return;
}
- lcf = event->details.operation_finished.op_cls;
+ lcf = event->op_cls;
if (CLOSURE_TYPE_LCF == lcf->type)
{
- GNUNET_assert (lcf->op == event->details.operation_finished.operation);
+ GNUNET_assert (lcf->op == event->op);
GNUNET_assert (FINISHED == lcf->state);
GNUNET_assert (GNUNET_SCHEDULER_NO_TASK != lcf->timeout_task);
GNUNET_SCHEDULER_cancel (lcf->timeout_task);
Modified: gnunet/src/testbed/test_testbed_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_api.c 2013-03-18 12:11:12 UTC (rev
26473)
+++ gnunet/src/testbed/test_testbed_api.c 2013-03-18 13:11:36 UTC (rev
26474)
@@ -223,7 +223,7 @@
dht_handle = NULL;
FAIL_TEST (PEER_SERVICE_CONNECT == sub_test, return);
FAIL_TEST (NULL != operation, return);
- operation = GNUNET_TESTBED_peer_stop (peer, NULL, NULL);
+ operation = GNUNET_TESTBED_peer_stop (NULL, peer, NULL, NULL);
FAIL_TEST (NULL != operation, return);
}
@@ -307,16 +307,16 @@
switch (sub_test)
{
case PEER_DESTROY:
- FAIL_TEST (event->details.operation_finished.operation == operation,
return);
- FAIL_TEST (NULL == event->details.operation_finished.op_cls, return);
+ FAIL_TEST (event->op == operation, return);
+ FAIL_TEST (NULL == event->op_cls, return);
FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
FAIL_TEST (NULL == event->details.operation_finished.generic, return);
GNUNET_TESTBED_operation_done (operation);
GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
break;
case PEER_SERVICE_CONNECT:
- FAIL_TEST (event->details.operation_finished.operation == operation,
return);
- FAIL_TEST (NULL == event->details.operation_finished.op_cls, return);
+ FAIL_TEST (event->op == operation, return);
+ FAIL_TEST (NULL == event->op_cls, return);
FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
FAIL_TEST (NULL != dht_handle, return);
FAIL_TEST (event->details.operation_finished.generic == dht_handle,
return);
Modified: gnunet/src/testbed/test_testbed_api_2peers_1controller.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_2peers_1controller.c 2013-03-18
12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/test_testbed_api_2peers_1controller.c 2013-03-18
13:11:36 UTC (rev 26474)
@@ -294,16 +294,16 @@
{
case GNUNET_TESTBED_ET_OPERATION_FINISHED: /* Will be reached when we
destroy peers */
FAIL_TEST (PEERS_STOPPED == result);
- FAIL_TEST (NULL == event->details.operation_finished.op_cls);
+ FAIL_TEST (NULL == event->op_cls);
FAIL_TEST (NULL == event->details.operation_finished.emsg);
FAIL_TEST (NULL == event->details.operation_finished.generic);
- if (event->details.operation_finished.operation == peer1.operation)
+ if (event->op == peer1.operation)
{
GNUNET_TESTBED_operation_done (peer1.operation);
peer1.operation = NULL;
peer1.peer = NULL;
}
- else if (event->details.operation_finished.operation == peer2.operation)
+ else if (event->op == peer2.operation)
{
GNUNET_TESTBED_operation_done (peer2.operation);
peer2.operation = NULL;
@@ -386,8 +386,8 @@
common_operation = NULL;
result = PEERS_CONNECTED_2;
LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n");
- peer1.operation = GNUNET_TESTBED_peer_stop (peer1.peer, NULL, NULL);
- peer2.operation = GNUNET_TESTBED_peer_stop (peer2.peer, NULL, NULL);
+ peer1.operation = GNUNET_TESTBED_peer_stop (NULL, peer1.peer, NULL,
NULL);
+ peer2.operation = GNUNET_TESTBED_peer_stop (NULL, peer2.peer, NULL,
NULL);
break;
default:
FAIL_TEST (0);
Modified: gnunet/src/testbed/test_testbed_api_3peers_3controllers.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_3peers_3controllers.c 2013-03-18
12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/test_testbed_api_3peers_3controllers.c 2013-03-18
13:11:36 UTC (rev 26474)
@@ -456,7 +456,7 @@
switch (event->type)
{
case GNUNET_TESTBED_ET_OPERATION_FINISHED:
- if ((NULL != event->details.operation_finished.op_cls) ||
+ if ((NULL != event->op_cls) ||
(NULL != event->details.operation_finished.emsg))
{
GNUNET_break (0);
@@ -472,19 +472,19 @@
abort_test ();
return;
}
- if (event->details.operation_finished.operation == peer1.operation)
+ if (event->op == peer1.operation)
{
GNUNET_TESTBED_operation_done (peer1.operation);
peer1.operation = NULL;
peer1.peer = NULL;
}
- else if (event->details.operation_finished.operation == peer2.operation)
+ else if (event->op == peer2.operation)
{
GNUNET_TESTBED_operation_done (peer2.operation);
peer2.operation = NULL;
peer2.peer = NULL;
}
- else if (event->details.operation_finished.operation == peer3.operation)
+ else if (event->op == peer3.operation)
{
GNUNET_TESTBED_operation_done (peer3.operation);
peer3.operation = NULL;
@@ -706,9 +706,9 @@
common_operation = NULL;
result = PEERS_CONNECTED_2;
LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n");
- peer1.operation = GNUNET_TESTBED_peer_stop (peer1.peer, NULL, NULL);
- peer2.operation = GNUNET_TESTBED_peer_stop (peer2.peer, NULL, NULL);
- peer3.operation = GNUNET_TESTBED_peer_stop (peer3.peer, NULL, NULL);
+ peer1.operation = GNUNET_TESTBED_peer_stop (NULL, peer1.peer, NULL,
NULL);
+ peer2.operation = GNUNET_TESTBED_peer_stop (NULL, peer2.peer, NULL,
NULL);
+ peer3.operation = GNUNET_TESTBED_peer_stop (NULL, peer3.peer, NULL,
NULL);
break;
default:
GNUNET_break (0);
Modified: gnunet/src/testbed/test_testbed_api_controllerlink.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_controllerlink.c 2013-03-18
12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/test_testbed_api_controllerlink.c 2013-03-18
13:11:36 UTC (rev 26474)
@@ -363,11 +363,11 @@
switch (result)
{
case SLAVE2_PEER_CREATE_SUCCESS:
- op = GNUNET_TESTBED_peer_stop (slave1_peer, NULL, NULL);
+ op = GNUNET_TESTBED_peer_stop (NULL, slave1_peer, NULL, NULL);
FAIL_TEST (NULL != op);
break;
case MASTER_SLAVE2_PEERS_CONNECTED:
- op = GNUNET_TESTBED_peer_stop (slave2_peer, NULL, NULL);
+ op = GNUNET_TESTBED_peer_stop (NULL, slave2_peer, NULL, NULL);
FAIL_TEST (NULL != op);
break;
default:
@@ -432,8 +432,8 @@
{
FAIL_TEST (NULL != event);
FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
- FAIL_TEST (event->details.operation_finished.operation == op);
- FAIL_TEST (NULL == event->details.operation_finished.op_cls);
+ FAIL_TEST (event->op == op);
+ FAIL_TEST (NULL == event->op_cls);
FAIL_TEST (NULL == event->details.operation_finished.emsg);
FAIL_TEST (NULL == event->details.operation_finished.generic);
}
@@ -562,8 +562,8 @@
case SLAVE3_STARTED:
FAIL_TEST (NULL != event);
FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
- FAIL_TEST (event->details.operation_finished.operation == op);
- FAIL_TEST (NULL == event->details.operation_finished.op_cls);
+ FAIL_TEST (event->op == op);
+ FAIL_TEST (NULL == event->op_cls);
FAIL_TEST (NULL == event->details.operation_finished.emsg);
cfg3 = GNUNET_CONFIGURATION_dup
(event->details.operation_finished.generic);
GNUNET_TESTBED_operation_done (op);
Modified: gnunet/src/testbed/test_testbed_api_testbed_run.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_testbed_run.c 2013-03-18 12:11:12 UTC
(rev 26473)
+++ gnunet/src/testbed/test_testbed_api_testbed_run.c 2013-03-18 13:11:36 UTC
(rev 26474)
@@ -102,7 +102,7 @@
{
result = GNUNET_OK;
GNUNET_assert (NULL != peers[0]);
- op = GNUNET_TESTBED_peer_stop (peers[0], NULL, NULL);
+ op = GNUNET_TESTBED_peer_stop (NULL, peers[0], NULL, NULL);
GNUNET_assert (NULL != op);
}
Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c 2013-03-18 12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/testbed_api.c 2013-03-18 13:11:36 UTC (rev 26474)
@@ -240,8 +240,8 @@
return GNUNET_YES;
}
event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
- event.details.operation_finished.operation = opc->op;
- event.details.operation_finished.op_cls = opc->op_cls;
+ event.op = opc->op;
+ event.op_cls = opc->op_cls;
event.details.operation_finished.emsg = NULL;
event.details.operation_finished.generic = NULL;
switch (opc->type)
@@ -385,6 +385,8 @@
peer = data->peer;
GNUNET_assert (NULL != peer);
event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
+ event.op = opc->op;
+ event.op_cls = opc->op_cls;
switch (event.type)
{
case GNUNET_TESTBED_ET_PEER_START:
@@ -455,6 +457,8 @@
GNUNET_assert ((ntohl (msg->peer1) == data->p1->unique_id) &&
(ntohl (msg->peer2) == data->p2->unique_id));
event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
+ event.op = opc->op;
+ event.op_cls = opc->op_cls;
switch (event.type)
{
case GNUNET_TESTBED_ET_CONNECT:
@@ -604,12 +608,12 @@
(NULL != c->cc))
{
event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
- event.details.operation_finished.operation = opc->op;
- event.details.operation_finished.op_cls = opc->op_cls;
+ event.op = opc->op;
+ event.op_cls = opc->op_cls;
event.details.operation_finished.emsg = emsg;
event.details.operation_finished.generic = NULL;
c->cc (c->cc_cls, &event);
- if (event.details.operation_finished.operation == last_finished_operation)
+ if (event.op == last_finished_operation)
return GNUNET_YES;
}
switch (opc->type)
@@ -731,9 +735,9 @@
{
opc->data = GNUNET_TESTBED_extract_config_ (&msg->header);
event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
+ event.op = opc->op;
+ event.op_cls = opc->op_cls;
event.details.operation_finished.generic = opc->data;
- event.details.operation_finished.operation = opc->op;
- event.details.operation_finished.op_cls = opc->op_cls;
event.details.operation_finished.emsg = NULL;
c->cc (c->cc_cls, &event);
}
@@ -787,8 +791,8 @@
GNUNET_free (data);
opc->data = NULL;
event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
- event.details.operation_finished.operation = opc->op;
- event.details.operation_finished.op_cls = opc->op_cls;
+ event.op = opc->op;
+ event.op_cls = opc->op_cls;
event.details.operation_finished.emsg = NULL;
event.details.operation_finished.generic = NULL;
emsg = NULL;
Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c 2013-03-18 12:11:12 UTC (rev
26473)
+++ gnunet/src/testbed/testbed_api_peers.c 2013-03-18 13:11:36 UTC (rev
26474)
@@ -563,13 +563,16 @@
* "GNUNET_TESTBED_peer_destroy" to fully clean up the
* state of the peer).
*
+ * @param op_cls the closure for this operation; will be set in the event
+ * information
* @param peer peer to stop
* @param pcc function to call upon completion
* @param pcc_cls closure for 'pcc'
* @return handle to the operation
*/
struct GNUNET_TESTBED_Operation *
-GNUNET_TESTBED_peer_stop (struct GNUNET_TESTBED_Peer *peer,
+GNUNET_TESTBED_peer_stop (void *op_cls,
+ struct GNUNET_TESTBED_Peer *peer,
GNUNET_TESTBED_PeerChurnCallback pcc, void *pcc_cls)
{
struct OperationContext *opc;
@@ -582,6 +585,7 @@
opc = GNUNET_malloc (sizeof (struct OperationContext));
opc->c = peer->controller;
opc->data = data;
+ opc->op_cls = op_cls;
opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
opc->type = OP_PEER_STOP;
opc->op =
Modified: gnunet/src/testbed/testbed_api_services.c
===================================================================
--- gnunet/src/testbed/testbed_api_services.c 2013-03-18 12:11:12 UTC (rev
26473)
+++ gnunet/src/testbed/testbed_api_services.c 2013-03-18 13:11:36 UTC (rev
26474)
@@ -144,8 +144,8 @@
mtype = ntohs (msg->type);
emsg = NULL;
info.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
- info.details.operation_finished.operation = data->operation;
- info.details.operation_finished.op_cls = data->op_cls;
+ info.op = data->operation;
+ info.op_cls = data->op_cls;
if (GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT == mtype)
{
emsg =
Modified: gnunet/src/testbed/testbed_api_testbed.c
===================================================================
--- gnunet/src/testbed/testbed_api_testbed.c 2013-03-18 12:11:12 UTC (rev
26473)
+++ gnunet/src/testbed/testbed_api_testbed.c 2013-03-18 13:11:36 UTC (rev
26474)
@@ -602,7 +602,7 @@
switch (event->type)
{
case GNUNET_TESTBED_ET_OPERATION_FINISHED:
- dll_op = event->details.operation_finished.op_cls;
+ dll_op = event->op_cls;
if (NULL != event->details.operation_finished.emsg)
{
LOG (GNUNET_ERROR_TYPE_ERROR, _("Linking controllers failed.
Exiting"));
@@ -610,7 +610,7 @@
}
else
rc->reg_hosts++;
- GNUNET_assert (event->details.operation_finished.operation ==
dll_op->op);
+ GNUNET_assert (event->op == dll_op->op);
GNUNET_CONTAINER_DLL_remove (rc->dll_op_head, rc->dll_op_tail, dll_op);
GNUNET_TESTBED_operation_done (dll_op->op);
GNUNET_free (dll_op);
@@ -629,7 +629,7 @@
for (dll_op = rc->dll_op_head; NULL != dll_op; dll_op = dll_op->next)
{
if ((GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type) &&
- (event->details.operation_finished.operation == dll_op->op))
+ (event->op == dll_op->op))
break;
}
if (NULL == dll_op)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r26474 - in gnunet/src: include testbed,
gnunet <=