moved common sensor functionality to a util lib
[oweals/gnunet.git] / src / sensor / sensor.h
1 /*
2       This file is part of GNUnet
3       (C) 2012-2013 Christian Grothoff (and other contributing authors)
4
5       GNUnet is free software; you can redistribute it and/or modify
6       it under the terms of the GNU General Public License as published
7       by the Free Software Foundation; either version 3, or (at your
8       option) any later version.
9
10       GNUnet is distributed in the hope that it will be useful, but
11       WITHOUT ANY WARRANTY; without even the implied warranty of
12       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13       General Public License for more details.
14
15       You should have received a copy of the GNU General Public License
16       along with GNUnet; see the file COPYING.  If not, write to the
17       Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18       Boston, MA 02111-1307, USA.
19  */
20 /**
21  * @file sensor/sensor.h
22  * @brief IPC messages and private service declarations
23  * @author Omar Tarabai
24  */
25
26 #include "gnunet_sensor_service.h"
27 #include "gnunet_sensor_util_lib.h"
28
29
30 GNUNET_NETWORK_STRUCT_BEGIN
31
32 /**
33  * Carries a summary of a sensor
34  *
35  */
36 struct SensorInfoMessage
37 {
38   /**
39    * Message header
40    */
41   struct GNUNET_MessageHeader header;
42
43   /**
44    * Length of sensor name (name follows the struct)
45    */
46   size_t name_len;
47
48   /**
49    * First part of version number
50    */
51   uint16_t version_major;
52
53   /**
54    * Second part of version number
55    */
56   uint16_t version_minor;
57
58   /**
59    * Length of sensor description (description itself follows)
60    */
61   size_t description_len;
62 };
63
64 GNUNET_NETWORK_STRUCT_END
65
66 /*
67  * Stop the sensor analysis module
68  */
69 void SENSOR_analysis_stop();
70
71 /*
72  * Start the sensor analysis module
73  *
74  * @param c our service configuration
75  * @param sensors_mhm multihashmap of loaded sensors
76  * @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
77  */
78 int
79 SENSOR_analysis_start(const struct GNUNET_CONFIGURATION_Handle *c,
80     struct GNUNET_CONTAINER_MultiHashMap *sensors_mhm);
81
82 /**
83  * Stop sensor reporting module
84  */
85 void SENSOR_reporting_stop();
86
87 /**
88  * Start the sensor reporting module
89  *
90  * @param c our service configuration
91  * @param sensors multihashmap of loaded sensors
92  * @return #GNUNET_OK if started successfully, #GNUNET_SYSERR otherwise
93  */
94 int
95 SENSOR_reporting_start(const struct GNUNET_CONFIGURATION_Handle *c,
96     struct GNUNET_CONTAINER_MultiHashMap *sensors);