sensor: separate monitoring functions
[oweals/gnunet.git] / src / sensor / sensor_util_lib.c
index 756c193ef706a7c1fc1e65f28ee3472a576eedb3..136bb288a7357f227938f6b53dd8a77ff13410f9 100644 (file)
@@ -150,8 +150,6 @@ load_sensor_from_cfg (struct GNUNET_CONFIGURATION_Handle *cfg,
                                              &starttime_str))
   {
     GNUNET_STRINGS_fancy_time_to_absolute (starttime_str, sensor->start_time);
-    LOG (GNUNET_ERROR_TYPE_DEBUG, "Start time loaded: `%s'. Parsed: %d\n",
-         starttime_str, (NULL != sensor->start_time));
     GNUNET_free (starttime_str);
   }
   //end time
@@ -161,8 +159,6 @@ load_sensor_from_cfg (struct GNUNET_CONFIGURATION_Handle *cfg,
                                              &endtime_str))
   {
     GNUNET_STRINGS_fancy_time_to_absolute (endtime_str, sensor->end_time);
-    LOG (GNUNET_ERROR_TYPE_DEBUG, "End time loaded: `%s'. Parsed: %d\n",
-         endtime_str, (NULL != sensor->end_time));
     GNUNET_free (endtime_str);
   }
   //interval
@@ -259,58 +255,41 @@ load_sensor_from_cfg (struct GNUNET_CONFIGURATION_Handle *cfg,
     GNUNET_free (sensor);
     return NULL;
   }
-  //reporting mechanism
+  //reporting
   sensor->collection_point = NULL;
+  sensor->report_values = GNUNET_NO;
+  sensor->report_anomalies = GNUNET_NO;
   if (GNUNET_OK ==
       GNUNET_CONFIGURATION_get_value_string (cfg, sectionname,
                                              "COLLECTION_POINT", &dummy))
   {
-    if (GNUNET_OK !=
-        GNUNET_CONFIGURATION_get_value_number (cfg, sectionname,
-                                               "COLLECTION_INTERVAL",
-                                               &time_sec))
-    {
-      LOG (GNUNET_ERROR_TYPE_ERROR,
-           _("Error reading sensor collection interval\n"));
-    }
-    else
+    if (GNUNET_OK ==
+        GNUNET_CRYPTO_eddsa_public_key_from_string (dummy, strlen (dummy),
+                                                    &public_key))
     {
-      sensor->collection_interval =
-          GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec);
+      sensor->collection_point = GNUNET_new (struct GNUNET_PeerIdentity);
+
+      sensor->collection_point->public_key = public_key;
       if (GNUNET_OK ==
-          GNUNET_CRYPTO_eddsa_public_key_from_string (dummy, strlen (dummy),
-                                                      &public_key))
+          GNUNET_CONFIGURATION_get_value_number (cfg, sectionname,
+                                                 "VALUE_COLLECTION_INTERVAL",
+                                                 &time_sec))
       {
-        sensor->collection_point = GNUNET_new (struct GNUNET_PeerIdentity);
-
-        sensor->collection_point->public_key = public_key;
+        sensor->report_values = GNUNET_YES;
+        sensor->value_reporting_interval =
+            GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec);
       }
+      if (GNUNET_YES ==
+          GNUNET_CONFIGURATION_get_value_yesno (cfg, sectionname,
+                                                "REPORT_ANOMALIES"))
+        sensor->report_anomalies = GNUNET_YES;
     }
     GNUNET_free (dummy);
   }
-  sensor->p2p_report = GNUNET_NO;
-  if (GNUNET_YES ==
-      GNUNET_CONFIGURATION_get_value_yesno (cfg, sectionname, "P2P_REPORT"))
-  {
-    if (GNUNET_OK !=
-        GNUNET_CONFIGURATION_get_value_number (cfg, sectionname, "P2P_INTERVAL",
-                                               &time_sec))
-    {
-      LOG (GNUNET_ERROR_TYPE_ERROR,
-           _("Error reading sensor p2p reporting interval\n"));
-    }
-    else
-    {
-      sensor->p2p_interval =
-          GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, time_sec);
-      sensor->p2p_report = GNUNET_YES;
-    }
-  }
   //execution task
   sensor->execution_task = GNUNET_SCHEDULER_NO_TASK;
   //running
   sensor->running = GNUNET_NO;
-
   return sensor;
 }
 
@@ -454,14 +433,14 @@ reload_sensors_dir_cb (void *cls, const char *filename)
 }
 
 
-/*
- * Get path to the directory containing the sensor definition files with a
- * trailing directory separator.
+/**
+ * Get path to the default directory containing the sensor definition files with
+ * trailing directory separator.
  *
- * @return sensor files directory full path
+ * @return Default sensor files directory full path
  */
 char *
-GNUNET_SENSOR_get_sensor_dir ()
+GNUNET_SENSOR_get_default_sensor_dir ()
 {
   char *datadir;
   char *sensordir;
@@ -474,28 +453,26 @@ GNUNET_SENSOR_get_sensor_dir ()
 
 
 /**
- * Reads sensor definitions from local data files
+ * Reads sensor definitions from given sensor directory.
  *
+ * @param sensordir Path to sensor directory.
  * @return a multihashmap of loaded sensors
  */
 struct GNUNET_CONTAINER_MultiHashMap *
-GNUNET_SENSOR_load_all_sensors ()
+GNUNET_SENSOR_load_all_sensors (char *sensor_dir)
 {
-  char *sensordir;
   struct GNUNET_CONTAINER_MultiHashMap *sensors;
 
+  GNUNET_assert (NULL != sensor_dir);
   sensors = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO);
-  sensordir = GNUNET_SENSOR_get_sensor_dir ();
   LOG (GNUNET_ERROR_TYPE_INFO,
-       "Loading sensor definitions from directory `%s'\n", sensordir);
+       "Loading sensor definitions from directory `%s'\n", sensor_dir);
   GNUNET_assert (GNUNET_YES ==
-                 GNUNET_DISK_directory_test (sensordir, GNUNET_YES));
-
-  //read all files in sensors directory
-  GNUNET_DISK_directory_scan (sensordir, &reload_sensors_dir_cb, sensors);
+                 GNUNET_DISK_directory_test (sensor_dir, GNUNET_YES));
+  /* read all files in sensors directory */
+  GNUNET_DISK_directory_scan (sensor_dir, &reload_sensors_dir_cb, sensors);
   LOG (GNUNET_ERROR_TYPE_INFO, "Loaded %d sensors from directory `%s'\n",
-       GNUNET_CONTAINER_multihashmap_size (sensors), sensordir);
-  GNUNET_free (sensordir);
+       GNUNET_CONTAINER_multihashmap_size (sensors), sensor_dir);
   return sensors;
 }