/**
* Timeout between request and expected response
*/
-#define EXP_RESPONSE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 1)
+#define EXP_RESPONSE_TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5)
/**
* Default experiment frequency
extern uint32_t GSE_node_capabilities;
+extern uint32_t GSE_my_issuer_count;
+
+extern struct Experimentation_Issuer *GSE_my_issuer;
+
/**
* Capabilities a node has or an experiment requires
*/
*/
struct GNUNET_CORE_TransmitHandle *cth;
+ /**
+ * Node capabilities
+ */
uint32_t capabilities;
+
+ /* Experiment version as timestamp of creation */
+ struct GNUNET_TIME_Absolute version;
+
+ uint32_t issuer_count;
+
+ /**
+ * Array of fssuer ids
+ */
+ struct GNUNET_PeerIdentity *issuer_id;
+};
+
+struct Experimentation_Issuer
+{
+ struct GNUNET_PeerIdentity issuer_id;
};
/**
* Experimentation request message
* Used to detect experimentation capability
+ *
+ * This struct is followed by issuer identities:
+ * (issuer_count * struct Experimentation_Request_Issuer)
+ *
*/
struct Experimentation_Request
{
struct GNUNET_MessageHeader msg;
uint32_t capabilities;
+
+ uint32_t issuer_count;
};
/**
* Experimentation response message
* Sent if peer is running the daemon
+ *
+ * This struct is followed by issuer identities:
+ * (issuer_count * struct Experimentation_Request_Issuer)
*/
struct Experimentation_Response
{
struct GNUNET_MessageHeader msg;
uint32_t capabilities;
+
+ uint32_t issuer_count;
};
+void
+GNUNET_EXPERIMENT_nodes_request_start (struct Node *n, struct Experiment *e);
+
/**
* Start the nodes management
GNUNET_EXPERIMENTATION_experiments_issuer_accepted (struct GNUNET_PeerIdentity *issuer_ID);
+typedef void (*GNUNET_EXPERIMENTATION_experiments_get_cb) (struct Node *n, struct Experiment *e);
+
+void
+GNUNET_EXPERIMENTATION_experiments_get (struct Node *n,
+ struct GNUNET_PeerIdentity *issuer,
+ GNUNET_EXPERIMENTATION_experiments_get_cb get_cb);
+
/**
* Start experiments management
*
* Start the scheduler component
*/
void
-GNUNET_EXPERIMENTATION_scheduler_add (struct Experiment *e);
+GNUNET_EXPERIMENTATION_scheduler_add (struct Node *n, struct Experiment *e);
/**
* Start the scheduler component