diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-09-19 11:02:56 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-09-19 11:02:56 +0000 |
commit | 38f8219826605a05286f1786a04183186d6578d0 (patch) | |
tree | 49f79e60ef215873b73af3f7ab88b634c6e110a5 /src | |
parent | 087783d2a3da65123b8aa339148f33978fa704df (diff) | |
download | gnunet-38f8219826605a05286f1786a04183186d6578d0.tar.gz gnunet-38f8219826605a05286f1786a04183186d6578d0.zip |
basic gnuplot script creation
Diffstat (limited to 'src')
-rw-r--r-- | src/ats-tests/perf_ats_logging.c | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/src/ats-tests/perf_ats_logging.c b/src/ats-tests/perf_ats_logging.c index def466bfd..6dbf114eb 100644 --- a/src/ats-tests/perf_ats_logging.c +++ b/src/ats-tests/perf_ats_logging.c | |||
@@ -29,6 +29,11 @@ | |||
29 | 29 | ||
30 | #define LOGGING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500) | 30 | #define LOGGING_FREQUENCY GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, 500) |
31 | 31 | ||
32 | #define template "#!/usr/bin/gnuplot \n" \ | ||
33 | "set datafile separator ';' \n" \ | ||
34 | "set title \"Throughput\" \n" \ | ||
35 | "set xlabel \"Time in ms\" \n" \ | ||
36 | "set ylabel \"Bytes/s\" \n" | ||
32 | 37 | ||
33 | /** | 38 | /** |
34 | * Logging task | 39 | * Logging task |
@@ -153,6 +158,38 @@ static struct LoggingPeer *lp; | |||
153 | 158 | ||
154 | 159 | ||
155 | static void | 160 | static void |
161 | write_gnuplot_script (char * fn, struct LoggingPeer *lp) | ||
162 | { | ||
163 | char * gfn; | ||
164 | struct GNUNET_DISK_FileHandle *f; | ||
165 | GNUNET_asprintf (&gfn, "gnuplot_%s",fn); | ||
166 | |||
167 | f = GNUNET_DISK_file_open (gfn, | ||
168 | GNUNET_DISK_OPEN_WRITE | GNUNET_DISK_OPEN_CREATE, | ||
169 | GNUNET_DISK_PERM_USER_EXEC | GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE); | ||
170 | if (NULL == f) | ||
171 | { | ||
172 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot open gnuplot file `%s'\n", gfn); | ||
173 | GNUNET_free (gfn); | ||
174 | return; | ||
175 | } | ||
176 | |||
177 | /* Write header */ | ||
178 | |||
179 | if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, template, strlen(template))) | ||
180 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to plot file `%s'\n", gfn); | ||
181 | |||
182 | /* Write data */ | ||
183 | |||
184 | |||
185 | |||
186 | if (GNUNET_SYSERR == GNUNET_DISK_file_close(f)) | ||
187 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot close gnuplot file `%s'\n", gfn); | ||
188 | |||
189 | GNUNET_free (gfn); | ||
190 | } | ||
191 | |||
192 | static void | ||
156 | write_to_file () | 193 | write_to_file () |
157 | { | 194 | { |
158 | struct GNUNET_DISK_FileHandle *f; | 195 | struct GNUNET_DISK_FileHandle *f; |
@@ -172,7 +209,7 @@ write_to_file () | |||
172 | 209 | ||
173 | for (c_m = 0; c_m < num_peers; c_m++) | 210 | for (c_m = 0; c_m < num_peers; c_m++) |
174 | { | 211 | { |
175 | GNUNET_asprintf (&filename, "%llu_master_[%u]_%s _%s.data", GNUNET_TIME_absolute_get().abs_value_us, | 212 | GNUNET_asprintf (&filename, "%llu_master_[%u]_%s_%s.data", GNUNET_TIME_absolute_get().abs_value_us, |
176 | lp[c_m].peer->no, GNUNET_i2s(&lp[c_m].peer->id), name); | 213 | lp[c_m].peer->no, GNUNET_i2s(&lp[c_m].peer->id), name); |
177 | 214 | ||
178 | f = GNUNET_DISK_file_open (filename, | 215 | f = GNUNET_DISK_file_open (filename, |
@@ -259,6 +296,8 @@ write_to_file () | |||
259 | return; | 296 | return; |
260 | } | 297 | } |
261 | 298 | ||
299 | write_gnuplot_script (filename, lp); | ||
300 | |||
262 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Data file successfully written to log file `%s'\n", filename); | 301 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Data file successfully written to log file `%s'\n", filename); |
263 | GNUNET_free (filename); | 302 | GNUNET_free (filename); |
264 | } | 303 | } |