From b56fa794970ac54860a61bbdb7d60c2b517d127a Mon Sep 17 00:00:00 2001 From: Omar Tarabai Date: Mon, 14 Apr 2014 12:16:18 +0000 Subject: [PATCH] SENSOR service integration --- src/include/gnunet_protocols.h | 26 ++++++- src/include/gnunet_sensor_service.h | 111 ++++++++++++++++++++++++++++ src/sensor/gnunet-sensor.c | 4 +- src/sensor/gnunet-service-sensor.c | 4 +- src/sensor/sensor_api.c | 4 +- src/sensor/test_sensor_api.c | 4 +- 6 files changed, 144 insertions(+), 9 deletions(-) create mode 100644 src/include/gnunet_sensor_service.h diff --git a/src/include/gnunet_protocols.h b/src/include/gnunet_protocols.h index 726d367a7..39ce58377 100644 --- a/src/include/gnunet_protocols.h +++ b/src/include/gnunet_protocols.h @@ -2407,9 +2407,33 @@ extern "C" #define GNUNET_MESSAGE_TYPE_SECRETSHARING_CLIENT_SECRET_READY 783 +/******************************************************************************* + * SENSOR message types + ******************************************************************************/ + +/** + * Request information about all sensors + */ +#define GNUNET_MESSAGE_TYPE_SENSOR_GETALL 800 + +/** + * Request information about one sensor + */ +#define GNUNET_MESSAGE_TYPE_SENSOR_GET 801 + +/** + * Message carrying sensor information + */ +#define GNUNET_MESSAGE_TYPE_SENSOR_INFO 802 + +/** + * End of an iteration sequence + */ +#define GNUNET_MESSAGE_TYPE_SENSOR_END 803 + /** - * Next available: 800 + * Next available: 830 */ diff --git a/src/include/gnunet_sensor_service.h b/src/include/gnunet_sensor_service.h new file mode 100644 index 000000000..8f5b806f8 --- /dev/null +++ b/src/include/gnunet_sensor_service.h @@ -0,0 +1,111 @@ +/* + This file is part of GNUnet + (C) + + GNUnet is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation; either version 3, or (at your + option) any later version. + + GNUnet is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + 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. + */ + +/** + * @file include/gnunet_sensor_service.h + * @brief API to the sensor service + * @author Omar Tarabai + */ +#ifndef GNUNET_SENSOR_SERVICE_H +#define GNUNET_SENSOR_SERVICE_H + +#include +#include +#include "gnunet_protocols_mi.h" + +#ifdef __cplusplus +extern "C" +{ +#if 0 /* keep Emacsens' auto-indent happy */ +} +#endif +#endif + + +/** + * Handle to the sensor service. + */ +struct GNUNET_SENSOR_Handle; + +/** + * Structure containing brief info about sensor + */ +struct SensorInfoShort +{ + + /* + * Sensor name + */ + char *name; + + /* + * First part of version number + */ + uint16_t version_major; + + /* + * Second part of version number + */ + uint16_t version_minor; + + /* + * Sensor description + */ + char *description; + +}; + +/** + * Type of an iterator over sensor definitions. + * + * @param cls closure + * @param hello hello message for the peer (can be NULL) + * @param error message + */ +typedef void (*GNUNET_SENSOR_SensorIteratorCB) (void *cls, + const struct SensorInfoShort *sensor, + const char *err_msg); + +/** + * Continuation called with a status result. + * + * @param cls closure + * @param emsg error message, NULL on success + */ +typedef void (*GNUNET_SENSOR_Continuation)(void *cls, + const char *emsg); + +/** + * Connect to the sensor service. + * + * @return NULL on error + */ +struct GNUNET_SENSOR_Handle * +GNUNET_SENSOR_connect (const struct GNUNET_CONFIGURATION_Handle *cfg); + + +#if 0 /* keep Emacsens' auto-indent happy */ +{ +#endif +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/sensor/gnunet-sensor.c b/src/sensor/gnunet-sensor.c index dd06d6e0b..ead7c5e0d 100644 --- a/src/sensor/gnunet-sensor.c +++ b/src/sensor/gnunet-sensor.c @@ -23,8 +23,8 @@ * @brief sensor tool * @author Omar Tarabai */ -#include -#include +#include "platform.h" +#include "gnunet_util_lib.h" #include "gnunet_sensor_service.h" static int ret; diff --git a/src/sensor/gnunet-service-sensor.c b/src/sensor/gnunet-service-sensor.c index 28c608e94..08b54453a 100644 --- a/src/sensor/gnunet-service-sensor.c +++ b/src/sensor/gnunet-service-sensor.c @@ -23,8 +23,8 @@ * @brief sensor service implementation * @author Christian Grothoff */ -#include -#include +#include "platform.h" +#include "gnunet_util_lib.h" #include "sensor.h" /** diff --git a/src/sensor/sensor_api.c b/src/sensor/sensor_api.c index 19ead13b3..985c29a0f 100644 --- a/src/sensor/sensor_api.c +++ b/src/sensor/sensor_api.c @@ -23,8 +23,8 @@ * @brief API for sensor * @author Omar Tarabai */ -#include -#include +#include "platform.h" +#include "gnunet_util_lib.h" #include "sensor.h" #define LOG(kind,...) GNUNET_log_from (kind, "sensor-api",__VA_ARGS__) diff --git a/src/sensor/test_sensor_api.c b/src/sensor/test_sensor_api.c index 0967f2b3f..b7ebf8ff6 100644 --- a/src/sensor/test_sensor_api.c +++ b/src/sensor/test_sensor_api.c @@ -21,8 +21,8 @@ * @file sensor/test_sensor_api.c * @brief testcase for sensor_api.c */ -#include -#include +#include "platform.h" +#include "gnunet_util_lib.h" #include "gnunet_sensor_service.h" -- 2.25.1