/*
This file is part of GNUnet
- (C) 2012-2013 Christian Grothoff (and other contributing authors)
+ Copyright (C) 2012-2013 Christian Grothoff (and other contributing authors)
GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
*/
/**
* @file sensor/sensor.h
struct GNUNET_MessageHeader header;
/**
- * Length of sensor name (name follows the struct)
+ * Length of sensor name. Allocated at position 0 after this struct.
*/
- size_t name_len;
+ uint16_t name_len;
/**
* First part of version number
uint16_t version_minor;
/**
- * Length of sensor description (description itself follows)
+ * Length of sensor description. Allocated at position 1 after this struct.
*/
- size_t description_len;
+ uint16_t description_len;
};
-GNUNET_NETWORK_STRUCT_END
/**
- * Stop the sensor analysis module
+ * A message sent to the sensor service to force an anomaly status on a sensor.
*/
- void
-SENSOR_analysis_stop ();
+struct ForceAnomalyMessage
+{
+ /**
+ * Message header
+ */
+ struct GNUNET_MessageHeader header;
-/**
- * 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);
+ /**
+ * Hash of the sensor name
+ */
+ struct GNUNET_HashCode sensor_name_hash;
+ /**
+ * New status
+ */
+ uint16_t anomalous;
+};
+
+GNUNET_NETWORK_STRUCT_END
/**
- * Stop sensor value reporting module
+ * Stop the sensor analysis module
*/
-void
-SENSOR_reporting_value_stop ();
+ void
+SENSOR_analysis_stop ();
/**
- * Start the sensor value reporting module
+ * 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_reporting_value_start (const struct GNUNET_CONFIGURATION_Handle *c,
- struct GNUNET_CONTAINER_MultiHashMap *sensors);
+SENSOR_analysis_start (const struct GNUNET_CONFIGURATION_Handle *c,
+ struct GNUNET_CONTAINER_MultiHashMap *s);
/**
* Stop sensor anomaly reporting module
*/
void
-SENSOR_reporting_anomaly_stop ();
+SENSOR_reporting_stop ();
/**
* Used by the analysis module to tell the reporting module about a change in
* @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
*/
int
-SENSOR_reporting_anomaly_start (const struct GNUNET_CONFIGURATION_Handle *c,
- struct GNUNET_CONTAINER_MultiHashMap *s);
+SENSOR_reporting_start (const struct GNUNET_CONFIGURATION_Handle *c,
+ struct GNUNET_CONTAINER_MultiHashMap *s);
/**
int
SENSOR_update_start (const struct GNUNET_CONFIGURATION_Handle *c,
struct GNUNET_CONTAINER_MultiHashMap *s, void (*cb) ());
+
+
+/**
+ * Stop the sensor monitoring module
+ */
+void
+SENSOR_monitoring_stop ();
+
+
+/**
+ * Start the sensor monitoring module
+ *
+ * @param c our service configuration
+ * @param sensors multihashmap of loaded sensors
+ * @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
+ */
+int
+SENSOR_monitoring_start (const struct GNUNET_CONFIGURATION_Handle *c,
+ struct GNUNET_CONTAINER_MultiHashMap *s);