diff options
author | Omar Tarabai <tarabai@devegypt.com> | 2014-06-26 14:15:56 +0000 |
---|---|---|
committer | Omar Tarabai <tarabai@devegypt.com> | 2014-06-26 14:15:56 +0000 |
commit | d5838194f7e6f059aa16bc5d0a49f9fd367ad90d (patch) | |
tree | bf98054ed9ac9076a96af44b267da32d119399e9 /src/sensor | |
parent | 8a8efc73d30f0358cbc784293dd6df0e8803dfd2 (diff) | |
download | gnunet-d5838194f7e6f059aa16bc5d0a49f9fd367ad90d.tar.gz gnunet-d5838194f7e6f059aa16bc5d0a49f9fd367ad90d.zip |
sensor: unified numeric datatypes
Diffstat (limited to 'src/sensor')
-rw-r--r-- | src/sensor/gnunet-service-sensor-analysis.c | 18 | ||||
-rw-r--r-- | src/sensor/gnunet-service-sensor.c | 21 | ||||
-rw-r--r-- | src/sensor/gnunet_sensor_model_plugin.h | 9 | ||||
-rw-r--r-- | src/sensor/plugin_sensor_model_gaussian.c | 24 | ||||
-rw-r--r-- | src/sensor/sensors/average-ping-rtt | 2 | ||||
-rw-r--r-- | src/sensor/sensors/datacache-bytes-stored | 2 | ||||
-rw-r--r-- | src/sensor/sensors/known-peers | 2 | ||||
-rw-r--r-- | src/sensor/sensors/nse | 2 | ||||
-rw-r--r-- | src/sensor/sensors/peerstore-memory | 2 | ||||
-rw-r--r-- | src/sensor/sensors/transport-bytes-received | 2 | ||||
-rw-r--r-- | src/sensor/sensors/transport-tcp-bytes-transmitted | 2 | ||||
-rw-r--r-- | src/sensor/sensors/transport-tcp-sessions-active | 2 |
12 files changed, 47 insertions, 41 deletions
diff --git a/src/sensor/gnunet-service-sensor-analysis.c b/src/sensor/gnunet-service-sensor-analysis.c index 37844f30c..531f7857d 100644 --- a/src/sensor/gnunet-service-sensor-analysis.c +++ b/src/sensor/gnunet-service-sensor-analysis.c | |||
@@ -80,11 +80,6 @@ static struct GNUNET_SENSOR_ModelFunctions *model_api; | |||
80 | static struct GNUNET_PEERSTORE_Handle *peerstore; | 80 | static struct GNUNET_PEERSTORE_Handle *peerstore; |
81 | 81 | ||
82 | /* | 82 | /* |
83 | * Datatypes supported by the analysis component | ||
84 | */ | ||
85 | static const char *analysis_datatypes[] = { "uint64", "double", NULL }; | ||
86 | |||
87 | /* | ||
88 | * Head of DLL of created models | 83 | * Head of DLL of created models |
89 | */ | 84 | */ |
90 | static struct SensorModel *models_head; | 85 | static struct SensorModel *models_head; |
@@ -173,19 +168,8 @@ init_sensor_model (void *cls, | |||
173 | { | 168 | { |
174 | struct SensorInfo *sensor = value; | 169 | struct SensorInfo *sensor = value; |
175 | struct SensorModel *sensor_model; | 170 | struct SensorModel *sensor_model; |
176 | int is_numeric; | ||
177 | int i; | ||
178 | 171 | ||
179 | is_numeric = GNUNET_NO; | 172 | if (0 != strcmp("numeric", sensor->expected_datatype)) |
180 | for (i = 0; NULL != analysis_datatypes[i]; i++) | ||
181 | { | ||
182 | if (0 == strcmp (analysis_datatypes[i], sensor->expected_datatype)) | ||
183 | { | ||
184 | is_numeric = GNUNET_YES; | ||
185 | break; | ||
186 | } | ||
187 | } | ||
188 | if (GNUNET_NO == is_numeric) | ||
189 | return GNUNET_YES; | 173 | return GNUNET_YES; |
190 | sensor_model = GNUNET_new(struct SensorModel); | 174 | sensor_model = GNUNET_new(struct SensorModel); |
191 | sensor_model->sensor = sensor; | 175 | sensor_model->sensor = sensor; |
diff --git a/src/sensor/gnunet-service-sensor.c b/src/sensor/gnunet-service-sensor.c index 681f132b6..83e611bfb 100644 --- a/src/sensor/gnunet-service-sensor.c +++ b/src/sensor/gnunet-service-sensor.c | |||
@@ -53,7 +53,7 @@ static const char *sources[] = { "gnunet-statistics", "process", NULL }; | |||
53 | /** | 53 | /** |
54 | * Supported datatypes of sensor information | 54 | * Supported datatypes of sensor information |
55 | */ | 55 | */ |
56 | static const char *datatypes[] = { "uint64", "double", "string", NULL }; | 56 | static const char *datatypes[] = { "numeric", "string", NULL }; |
57 | 57 | ||
58 | /** | 58 | /** |
59 | * Handle to statistics service | 59 | * Handle to statistics service |
@@ -697,6 +697,7 @@ int sensor_statistics_iterator (void *cls, | |||
697 | int is_persistent) | 697 | int is_persistent) |
698 | { | 698 | { |
699 | struct SensorInfo *sensorinfo = cls; | 699 | struct SensorInfo *sensorinfo = cls; |
700 | double dvalue = (double)value; | ||
700 | struct GNUNET_TIME_Absolute expiry; | 701 | struct GNUNET_TIME_Absolute expiry; |
701 | 702 | ||
702 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received a value for sensor `%s': %" PRIu64 "\n", sensorinfo->name, value); | 703 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Received a value for sensor `%s': %" PRIu64 "\n", sensorinfo->name, value); |
@@ -705,8 +706,8 @@ int sensor_statistics_iterator (void *cls, | |||
705 | subsystem, | 706 | subsystem, |
706 | &peerid, | 707 | &peerid, |
707 | sensorinfo->name, | 708 | sensorinfo->name, |
708 | &value, | 709 | &dvalue, |
709 | sizeof(value), | 710 | sizeof(dvalue), |
710 | expiry, | 711 | expiry, |
711 | GNUNET_PEERSTORE_STOREOPTION_MULTIPLE, | 712 | GNUNET_PEERSTORE_STOREOPTION_MULTIPLE, |
712 | NULL, | 713 | NULL, |
@@ -741,25 +742,13 @@ void end_sensor_run_stat (void *cls, int success) | |||
741 | static size_t | 742 | static size_t |
742 | parse_sensor_value (const char *value, struct SensorInfo* sensor, void **ret) | 743 | parse_sensor_value (const char *value, struct SensorInfo* sensor, void **ret) |
743 | { | 744 | { |
744 | uint64_t *ullval; | ||
745 | double *dval; | 745 | double *dval; |
746 | char *endptr; | 746 | char *endptr; |
747 | 747 | ||
748 | *ret = NULL; | 748 | *ret = NULL; |
749 | if ('\0' == *value) | 749 | if ('\0' == *value) |
750 | return 0; | 750 | return 0; |
751 | //"uint64", "double", "string" | 751 | if(0 == strcmp("numeric", sensor->expected_datatype)) |
752 | if (0 == strcmp("uint64", sensor->expected_datatype)) | ||
753 | { | ||
754 | ullval = GNUNET_new(uint64_t); | ||
755 | *ullval = strtoull(value, &endptr, 10); | ||
756 | if ('\0' != *endptr && | ||
757 | '\n' != *endptr) /* Invalid string */ | ||
758 | return 0; | ||
759 | *ret = ullval; | ||
760 | return sizeof(uint64_t); | ||
761 | } | ||
762 | if(0 == strcmp("double", sensor->expected_datatype)) | ||
763 | { | 752 | { |
764 | dval = GNUNET_new(double); | 753 | dval = GNUNET_new(double); |
765 | *dval = strtod(value, &endptr); | 754 | *dval = strtod(value, &endptr); |
diff --git a/src/sensor/gnunet_sensor_model_plugin.h b/src/sensor/gnunet_sensor_model_plugin.h index 374c776f5..b2973a60d 100644 --- a/src/sensor/gnunet_sensor_model_plugin.h +++ b/src/sensor/gnunet_sensor_model_plugin.h | |||
@@ -48,6 +48,15 @@ struct GNUNET_SENSOR_ModelFunctions | |||
48 | */ | 48 | */ |
49 | void *cls; | 49 | void *cls; |
50 | 50 | ||
51 | /* | ||
52 | * Create a model instance | ||
53 | * | ||
54 | * @param cls closure (plugin state) | ||
55 | * @return model state to be used for later calls | ||
56 | */ | ||
57 | void * | ||
58 | (*create_model) (void *cls); | ||
59 | |||
51 | }; | 60 | }; |
52 | 61 | ||
53 | 62 | ||
diff --git a/src/sensor/plugin_sensor_model_gaussian.c b/src/sensor/plugin_sensor_model_gaussian.c index ee316035e..bf2090217 100644 --- a/src/sensor/plugin_sensor_model_gaussian.c +++ b/src/sensor/plugin_sensor_model_gaussian.c | |||
@@ -45,6 +45,30 @@ struct Plugin | |||
45 | }; | 45 | }; |
46 | 46 | ||
47 | /* | 47 | /* |
48 | * State of single model instance | ||
49 | */ | ||
50 | struct Model | ||
51 | { | ||
52 | |||
53 | /* | ||
54 | * Pointer to the plugin state | ||
55 | */ | ||
56 | struct Plugin *plugin; | ||
57 | |||
58 | }; | ||
59 | |||
60 | static void * | ||
61 | sensor_gaussian_model_create_model (void *cls) | ||
62 | { | ||
63 | struct Plugin *plugin = cls; | ||
64 | struct Model *model; | ||
65 | |||
66 | model = GNUNET_new(struct Model); | ||
67 | model->plugin = plugin; | ||
68 | return model; | ||
69 | } | ||
70 | |||
71 | /* | ||
48 | * Entry point for the plugin. | 72 | * Entry point for the plugin. |
49 | * | 73 | * |
50 | * @param cls The struct GNUNET_CONFIGURATION_Handle. | 74 | * @param cls The struct GNUNET_CONFIGURATION_Handle. |
diff --git a/src/sensor/sensors/average-ping-rtt b/src/sensor/sensors/average-ping-rtt index aaf84e0b6..36888c982 100644 --- a/src/sensor/sensors/average-ping-rtt +++ b/src/sensor/sensors/average-ping-rtt | |||
@@ -22,7 +22,7 @@ SOURCE = process | |||
22 | EXT_PROCESS = avgping.sh | 22 | EXT_PROCESS = avgping.sh |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = double | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/datacache-bytes-stored b/src/sensor/sensors/datacache-bytes-stored index c58bb4ea1..b55ee8083 100644 --- a/src/sensor/sensors/datacache-bytes-stored +++ b/src/sensor/sensors/datacache-bytes-stored | |||
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # bytes stored | |||
22 | #EXT_PROCESS = | 22 | #EXT_PROCESS = |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/known-peers b/src/sensor/sensors/known-peers index fa92bd7c7..5c7c1aeaa 100644 --- a/src/sensor/sensors/known-peers +++ b/src/sensor/sensors/known-peers | |||
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # peers known | |||
22 | #EXT_PROCESS = | 22 | #EXT_PROCESS = |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/nse b/src/sensor/sensors/nse index 429e80478..f95cc34de 100644 --- a/src/sensor/sensors/nse +++ b/src/sensor/sensors/nse | |||
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # nodes in the network (estimate) | |||
22 | #EXT_PROCESS = | 22 | #EXT_PROCESS = |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/peerstore-memory b/src/sensor/sensors/peerstore-memory index a75110d36..6d6c54600 100644 --- a/src/sensor/sensors/peerstore-memory +++ b/src/sensor/sensors/peerstore-memory | |||
@@ -22,7 +22,7 @@ SOURCE = process | |||
22 | EXT_PROCESS = peerstore-memory.sh | 22 | EXT_PROCESS = peerstore-memory.sh |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/transport-bytes-received b/src/sensor/sensors/transport-bytes-received index 014546934..5c45d6cb1 100644 --- a/src/sensor/sensors/transport-bytes-received +++ b/src/sensor/sensors/transport-bytes-received | |||
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # bytes total received | |||
22 | #EXT_PROCESS = | 22 | #EXT_PROCESS = |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/transport-tcp-bytes-transmitted b/src/sensor/sensors/transport-tcp-bytes-transmitted index 43b0f572c..cf45c0c86 100644 --- a/src/sensor/sensors/transport-tcp-bytes-transmitted +++ b/src/sensor/sensors/transport-tcp-bytes-transmitted | |||
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # bytes transmitted via TCP | |||
22 | #EXT_PROCESS = | 22 | #EXT_PROCESS = |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |
diff --git a/src/sensor/sensors/transport-tcp-sessions-active b/src/sensor/sensors/transport-tcp-sessions-active index a0466f81a..810313091 100644 --- a/src/sensor/sensors/transport-tcp-sessions-active +++ b/src/sensor/sensors/transport-tcp-sessions-active | |||
@@ -22,7 +22,7 @@ GNUNET_STAT_NAME = # TCP sessions active | |||
22 | #EXT_PROCESS = | 22 | #EXT_PROCESS = |
23 | #EXT_ARGS = | 23 | #EXT_ARGS = |
24 | 24 | ||
25 | EXPECTED_DATATYPE = uint64 | 25 | EXPECTED_DATATYPE = numeric |
26 | 26 | ||
27 | # Reporting mechanism | 27 | # Reporting mechanism |
28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 | 28 | COLLECTION_POINT = JLAPIAOB2DJA4B4I676TCOCVU0DUIRMKKUSM71BLLGCV3OHMUQ80 |