documentation
[oweals/gnunet.git] / src / experimentation / gnunet-daemon-experimentation.c
index 7b77445a0779866b3a695b4b4af08cab2dd51d5a..5bcfe427586cde93be628a055c89f7b5c2aa4609 100644 (file)
  */
 #include "platform.h"
 #include "gnunet_getopt_lib.h"
-#include "gnunet_program_lib.h"
+#include "gnunet_util_lib.h"
 #include "gnunet_core_service.h"
+#include "gnunet_statistics_service.h"
+#include "gnunet-daemon-experimentation.h"
 
-static struct GNUNET_CORE_Handle *ch;
-
+static struct GNUNET_STATISTICS_Handle *GSE_stats;
 
 /**
  * Task run during shutdown.
@@ -39,53 +40,21 @@ static struct GNUNET_CORE_Handle *ch;
  * @param tc unused
  */
 static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Experimentation daemon shutting down ...\n"));
-  if (NULL != ch)
-  {
-               GNUNET_CORE_disconnect (ch);
-               ch = NULL;
-  }
-
+  GNUNET_EXPERIMENTATION_nodes_stop();
 }
 
-/**
- * Method called whenever a given peer connects.
- *
- * @param cls closure
- * @param peer peer identity this notification is about
- */
-void core_connect_handler (void *cls,
-                           const struct GNUNET_PeerIdentity * peer)
-{
-       GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Connected to peer %s\n"),
-                       GNUNET_i2s (peer));
-       /* Send request */
-
-       /* TBD */
-}
 
 
 /**
- * Method called whenever a given peer disconnects.
+ * Function starting all submodules of the experimentation daemon.
  *
- * @param cls closure
- * @param peer peer identity this notification is about
- */
-void core_disconnect_handler (void *cls,
-                           const struct GNUNET_PeerIdentity * peer)
-{
-       GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Disconnected from peer %s\n"),
-                       GNUNET_i2s (peer));
-
-}
-
-/**
- * The main function for the experimentation daemon.
- *
- * @param argc number of arguments from the command line
- * @param argv command line arguments
+ * @param cls always NULL
+ * @param args temaining command line arguments
+ * @param cfgfile configuration file used
+ * @param cfg configuration handle
  */
 static void
 run (void *cls, char *const *args, const char *cfgfile,
@@ -93,18 +62,16 @@ run (void *cls, char *const *args, const char *cfgfile,
 {
        GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Experimentation daemon starting ...\n"));
 
-       /* Connecting to core service to find partners */
-       ch = GNUNET_CORE_connect (cfg, NULL, NULL,
-                                                                                                               &core_connect_handler,
-                                                                                                               &core_disconnect_handler,
-                                                                                                               NULL, GNUNET_NO, NULL, GNUNET_NO, NULL);
-       if (NULL == ch)
+       GSE_stats = GNUNET_STATISTICS_create ("experimentation", cfg);
+       if (NULL == GSE_stats)
        {
-                       GNUNET_log (GNUNET_ERROR_TYPE_INFO, _("Failed to connect to CORE service!\n"));
-                       return;
+               GNUNET_log (GNUNET_ERROR_TYPE_ERROR, _("Failed to create statistics!\n"));
+               return;
        }
 
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task,
+       GNUNET_EXPERIMENTATION_nodes_start (cfg);
+
+  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task,
                                 NULL);
 
 }