sensor: merged reporting module
[oweals/gnunet.git] / src / sensor / sensor.h
index a505d47d31bf14641867e7cbacc097919f4a84cc..5d75ee42780a7dd9ead3c50d2695ef3d82c5a51b 100644 (file)
  */
 /**
  * @file sensor/sensor.h
- * @brief IPC messages
+ * @brief IPC messages and private service declarations
  * @author Omar Tarabai
  */
 
 #include "gnunet_sensor_service.h"
+#include "gnunet_sensor_util_lib.h"
 
 
 GNUNET_NETWORK_STRUCT_BEGIN
-
 /**
  * Carries a summary of a sensor
  *
  */
-struct SensorInfoMessage
+    struct SensorInfoMessage
 {
   /**
    * Message header
@@ -61,3 +61,70 @@ struct SensorInfoMessage
 };
 
 GNUNET_NETWORK_STRUCT_END
+/**
+ * Stop the sensor analysis module
+ */
+    void
+SENSOR_analysis_stop ();
+
+
+/**
+ * Start the sensor analysis module
+ *
+ * @param c our service configuration
+ * @param sensors multihashmap of loaded sensors
+ * @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
+ */
+int
+SENSOR_analysis_start (const struct GNUNET_CONFIGURATION_Handle *c,
+                       struct GNUNET_CONTAINER_MultiHashMap *sensors);
+
+
+/**
+ * Stop sensor anomaly reporting module
+ */
+void
+SENSOR_reporting_stop ();
+
+/**
+ * Used by the analysis module to tell the reporting module about a change in
+ * the anomaly status of a sensor.
+ *
+ * @param sensor Related sensor
+ * @param anomalous The new sensor anomalous status
+ */
+void
+SENSOR_reporting_anomaly_update (struct GNUNET_SENSOR_SensorInfo *sensor,
+                                 int anomalous);
+
+
+/**
+ * Start the sensor anomaly reporting module
+ *
+ * @param c our service configuration
+ * @param s multihashmap of loaded sensors
+ * @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
+ */
+int
+SENSOR_reporting_start (const struct GNUNET_CONFIGURATION_Handle *c,
+                                struct GNUNET_CONTAINER_MultiHashMap *s);
+
+
+/**
+ * Stop the sensor update module
+ */
+void
+SENSOR_update_stop ();
+
+
+/**
+ * Start the sensor update module
+ *
+ * @param c our service configuration
+ * @param s multihashmap of loaded sensors
+ * @param cb callback to reset service components when we have new updates
+ * @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
+ */
+int
+SENSOR_update_start (const struct GNUNET_CONFIGURATION_Handle *c,
+                     struct GNUNET_CONTAINER_MultiHashMap *s, void (*cb) ());