aboutsummaryrefslogtreecommitdiff
path: root/src/sensordashboard
diff options
context:
space:
mode:
authorOmar Tarabai <tarabai@devegypt.com>2014-07-07 14:47:37 +0000
committerOmar Tarabai <tarabai@devegypt.com>2014-07-07 14:47:37 +0000
commitb605cb978095810dc6de4a9fa85fba6d0009f97d (patch)
tree0d401a9e63059600cedbd9893d4c0da4bbb68dd9 /src/sensordashboard
parentf62cd2e434495d6426288a4ead56454a878815fa (diff)
downloadgnunet-b605cb978095810dc6de4a9fa85fba6d0009f97d.tar.gz
gnunet-b605cb978095810dc6de4a9fa85fba6d0009f97d.zip
sensordashboard: received data stored in peerstore
Diffstat (limited to 'src/sensordashboard')
-rw-r--r--src/sensordashboard/Makefile.am1
-rw-r--r--src/sensordashboard/gnunet-service-sensordashboard.c32
2 files changed, 32 insertions, 1 deletions
diff --git a/src/sensordashboard/Makefile.am b/src/sensordashboard/Makefile.am
index d54da840b..959084fae 100644
--- a/src/sensordashboard/Makefile.am
+++ b/src/sensordashboard/Makefile.am
@@ -33,6 +33,7 @@ gnunet_service_sensordashboard_LDADD = \
33 $(top_builddir)/src/util/libgnunetutil.la \ 33 $(top_builddir)/src/util/libgnunetutil.la \
34 $(top_builddir)/src/cadet/libgnunetcadet.la \ 34 $(top_builddir)/src/cadet/libgnunetcadet.la \
35 $(top_builddir)/src/sensor/libgnunetsensorutil.la \ 35 $(top_builddir)/src/sensor/libgnunetsensorutil.la \
36 $(top_builddir)/src/peerstore/libgnunetpeerstore.la \
36 $(GN_LIBINTL) 37 $(GN_LIBINTL)
37 38
38 39
diff --git a/src/sensordashboard/gnunet-service-sensordashboard.c b/src/sensordashboard/gnunet-service-sensordashboard.c
index 841268762..19acec4da 100644
--- a/src/sensordashboard/gnunet-service-sensordashboard.c
+++ b/src/sensordashboard/gnunet-service-sensordashboard.c
@@ -30,15 +30,29 @@
30#include "sensordashboard.h" 30#include "sensordashboard.h"
31#include "gnunet_cadet_service.h" 31#include "gnunet_cadet_service.h"
32#include "gnunet_sensor_util_lib.h" 32#include "gnunet_sensor_util_lib.h"
33#include "gnunet_peerstore_service.h"
33 34
34/** 35/**
35 * Handle to CADET service 36 * Handle to CADET service
36 */ 37 */
37static struct GNUNET_CADET_Handle *cadet; 38static struct GNUNET_CADET_Handle *cadet;
38 39
40/**
41 * Global hashmap of defined sensors
42 */
39static struct GNUNET_CONTAINER_MultiHashMap *sensors; 43static struct GNUNET_CONTAINER_MultiHashMap *sensors;
40 44
41/** 45/**
46 * Handle to the peerstore service connection
47 */
48static struct GNUNET_PEERSTORE_Handle *peerstore;
49
50/**
51 * Name of this subsystem to be used for peerstore operations
52 */
53static char *subsystem = "sensordashboard";
54
55/**
42 * Task run during shutdown. 56 * Task run during shutdown.
43 * 57 *
44 * @param cls unused 58 * @param cls unused
@@ -52,6 +66,11 @@ cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
52 GNUNET_CADET_disconnect(cadet); 66 GNUNET_CADET_disconnect(cadet);
53 cadet = NULL; 67 cadet = NULL;
54 } 68 }
69 if (NULL != peerstore)
70 {
71 GNUNET_PEERSTORE_disconnect (peerstore);
72 peerstore = NULL;
73 }
55 GNUNET_SENSOR_destroy_sensors (sensors); 74 GNUNET_SENSOR_destroy_sensors (sensors);
56 GNUNET_SCHEDULER_shutdown(); 75 GNUNET_SCHEDULER_shutdown();
57} 76}
@@ -143,6 +162,9 @@ int sensor_reading_receiver (void *cls, struct GNUNET_CADET_Channel *channel,
143 reading->sensor->name, 162 reading->sensor->name,
144 reading->timestamp, 163 reading->timestamp,
145 reading->value_size); 164 reading->value_size);
165 GNUNET_PEERSTORE_store (peerstore, subsystem, peer, reading->sensor->name,
166 reading->value, reading->value_size, GNUNET_TIME_UNIT_FOREVER_ABS,
167 GNUNET_PEERSTORE_STOREOPTION_MULTIPLE, NULL, NULL);
146 GNUNET_free (reading->value); 168 GNUNET_free (reading->value);
147 GNUNET_free (reading); 169 GNUNET_free (reading);
148 return GNUNET_OK; 170 return GNUNET_OK;
@@ -181,7 +203,15 @@ run (void *cls, struct GNUNET_SERVER_Handle *server,
181 if(NULL == cadet) 203 if(NULL == cadet)
182 { 204 {
183 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 205 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
184 _("Failed to connect to CADET service.\n")); 206 _("Failed to connect to `%s' service.\n"), "CADET");
207 GNUNET_SCHEDULER_add_now (&cleanup_task, NULL);
208 return;
209 }
210 peerstore = GNUNET_PEERSTORE_connect (cfg);
211 if (NULL == peerstore)
212 {
213 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
214 _("Failed to connect to `%s' service.\n"), "PEERSTORE");
185 GNUNET_SCHEDULER_add_now (&cleanup_task, NULL); 215 GNUNET_SCHEDULER_add_now (&cleanup_task, NULL);
186 return; 216 return;
187 } 217 }