-removing dead options
[oweals/gnunet.git] / src / experimentation / gnunet-daemon-experimentation.h
index 4a7e6202806caaedf5b8f979362a396d2912219b..999c565ad35ed32a51b29a2541147d1be5d7044a 100644 (file)
@@ -34,7 +34,7 @@
 /**
  * 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
@@ -64,6 +64,10 @@ extern struct GNUNET_CONFIGURATION_Handle *GSE_cfg;
 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
  */
@@ -147,31 +151,63 @@ struct Node
         */
        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
@@ -231,6 +267,13 @@ int
 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
  *
@@ -251,7 +294,7 @@ GNUNET_EXPERIMENTATION_experiments_stop ();
  * 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