aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-02-11 16:32:11 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-02-11 16:32:11 +0000
commit119614137bc074cd704757e8f8e5845383c7f8c1 (patch)
tree2954b466244828f47ec3b6eaeb78b88e2facc9b2 /src
parent84faee523650bb8613d67f99777e990a7497bf73 (diff)
downloadgnunet-119614137bc074cd704757e8f8e5845383c7f8c1.tar.gz
gnunet-119614137bc074cd704757e8f8e5845383c7f8c1.zip
basic logging
Diffstat (limited to 'src')
-rw-r--r--src/ats/experiments/set_preference.exp2
-rw-r--r--src/ats/gnunet-ats-solver-eval.c68
-rw-r--r--src/ats/gnunet-ats-solver-eval.h13
3 files changed, 58 insertions, 25 deletions
diff --git a/src/ats/experiments/set_preference.exp b/src/ats/experiments/set_preference.exp
index b49843e4b..f42efdcc5 100644
--- a/src/ats/experiments/set_preference.exp
+++ b/src/ats/experiments/set_preference.exp
@@ -37,7 +37,7 @@ op-3-peer-id = 1
37 37
38[episode-1] 38[episode-1]
39# Set delay 39# Set delay
40duration = 5 s 40duration = 1 s
41 41
42op-0-operation = start_set_preference 42op-0-operation = start_set_preference
43op-0-address-id = 0 43op-0-address-id = 0
diff --git a/src/ats/gnunet-ats-solver-eval.c b/src/ats/gnunet-ats-solver-eval.c
index afe65d5a1..7eb1638df 100644
--- a/src/ats/gnunet-ats-solver-eval.c
+++ b/src/ats/gnunet-ats-solver-eval.c
@@ -60,6 +60,11 @@ static int opt_plot;
60 */ 60 */
61static int opt_verbose; 61static int opt_verbose;
62 62
63/**
64 * cmd option -p: print logs
65 */
66static int opt_print;
67
63static int res; 68static int res;
64 69
65static void 70static void
@@ -133,14 +138,28 @@ find_address_by_id (struct TestPeer *peer, int aid)
133 * Logging 138 * Logging
134 */ 139 */
135 140
141void
142GNUNET_ATS_solver_logging_now (struct LoggingHandle *l)
143{
144 struct LoggingTimeStep *lts;
145 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n");
146
147 lts = GNUNET_new (struct LoggingTimeStep);
148 lts->timestamp = GNUNET_TIME_absolute_get();
149
150 /* Store logging data here */
151
152 GNUNET_CONTAINER_DLL_insert_tail(l->head, l->tail, lts);
153
154}
155
136static void 156static void
137logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) 157logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
138{ 158{
139 struct LoggingHandle *l = cls; 159 struct LoggingHandle *l = cls;
140
141 l->logging_task = GNUNET_SCHEDULER_NO_TASK; 160 l->logging_task = GNUNET_SCHEDULER_NO_TASK;
142 161
143 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n"); 162 GNUNET_ATS_solver_logging_now (l);
144 163
145 l->logging_task = GNUNET_SCHEDULER_add_delayed (l->log_freq, &logging_task, l); 164 l->logging_task = GNUNET_SCHEDULER_add_delayed (l->log_freq, &logging_task, l);
146 165
@@ -164,12 +183,6 @@ GNUNET_ATS_solver_logging_start (struct GNUNET_TIME_Relative freq)
164} 183}
165 184
166void 185void
167GNUNET_ATS_solver_logging_now (struct LoggingHandle *l)
168{
169 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n");
170}
171
172void
173GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l) 186GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l)
174{ 187{
175 if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) 188 if (GNUNET_SCHEDULER_NO_TASK != l->logging_task)
@@ -183,15 +196,32 @@ GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l)
183void 196void
184GNUNET_ATS_solver_logging_eval (struct LoggingHandle *l) 197GNUNET_ATS_solver_logging_eval (struct LoggingHandle *l)
185{ 198{
199 struct LoggingTimeStep *lts;
186 200
201 for (lts = l->head; NULL != lts; lts = lts->next)
202 {
203 fprintf (stderr, "Log %llu: \n", (long long unsigned int) lts->timestamp.abs_value_us);
204 }
187} 205}
188 206
189void 207void
190GNUNET_ATS_solver_logging_free (struct LoggingHandle *l) 208GNUNET_ATS_solver_logging_free (struct LoggingHandle *l)
191{ 209{
210 struct LoggingTimeStep *cur;
211 struct LoggingTimeStep *next;
212
192 if (GNUNET_SCHEDULER_NO_TASK != l->logging_task) 213 if (GNUNET_SCHEDULER_NO_TASK != l->logging_task)
193 GNUNET_SCHEDULER_cancel (l->logging_task); 214 GNUNET_SCHEDULER_cancel (l->logging_task);
194 l->logging_task = GNUNET_SCHEDULER_NO_TASK; 215 l->logging_task = GNUNET_SCHEDULER_NO_TASK;
216
217 next = l->head;
218 while (NULL != (cur = next))
219 {
220 next = cur->next;
221 GNUNET_CONTAINER_DLL_remove (l->head, l->tail, cur);
222 GNUNET_free (cur);
223 }
224
195 GNUNET_free (l); 225 GNUNET_free (l);
196} 226}
197 227
@@ -1717,7 +1747,6 @@ enforce_del_address (struct GNUNET_ATS_TEST_Operation *op)
1717 "Deleting address for unknown peer %u\n", op->peer_id); 1747 "Deleting address for unknown peer %u\n", op->peer_id);
1718 return; 1748 return;
1719 } 1749 }
1720 GNUNET_CONTAINER_DLL_remove (p->addr_head, p->addr_tail, a);
1721 1750
1722 GNUNET_CONTAINER_multipeermap_remove (sh->addresses, &p->peer_id, ctx.res); 1751 GNUNET_CONTAINER_multipeermap_remove (sh->addresses, &p->peer_id, ctx.res);
1723 1752
@@ -2472,6 +2501,9 @@ done ()
2472 e = NULL; 2501 e = NULL;
2473 } 2502 }
2474 2503
2504 if (opt_print)
2505 GNUNET_ATS_solver_logging_eval (l);
2506
2475 if (NULL != l) 2507 if (NULL != l)
2476 { 2508 {
2477 GNUNET_ATS_solver_logging_free (l); 2509 GNUNET_ATS_solver_logging_free (l);
@@ -2492,7 +2524,6 @@ done ()
2492 } 2524 }
2493 GNUNET_free (cur); 2525 GNUNET_free (cur);
2494 } 2526 }
2495
2496 if (NULL != sh) 2527 if (NULL != sh)
2497 { 2528 {
2498 GNUNET_ATS_solvers_solver_stop (sh); 2529 GNUNET_ATS_solvers_solver_stop (sh);
@@ -2500,7 +2531,6 @@ done ()
2500 } 2531 }
2501 /* Shutdown */ 2532 /* Shutdown */
2502 end_now(); 2533 end_now();
2503
2504} 2534}
2505 2535
2506static void 2536static void
@@ -2512,19 +2542,6 @@ experiment_done_cb (struct Experiment *e, struct GNUNET_TIME_Relative duration,i
2512 else 2542 else
2513 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n"); 2543 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n");
2514 2544
2515
2516 /*
2517 evaluate (duration);
2518 if (opt_log)
2519 GNUNET_ATS_TEST_logging_write_to_file(l, opt_exp_file, opt_plot);
2520
2521 if (NULL != l)
2522 {
2523 GNUNET_ATS_TEST_logging_stop (l);
2524 GNUNET_ATS_TEST_logging_clean_up (l);
2525 l = NULL;
2526 }
2527 */
2528 GNUNET_SCHEDULER_add_now (&done, NULL); 2545 GNUNET_SCHEDULER_add_now (&done, NULL);
2529} 2546}
2530 2547
@@ -2654,6 +2671,9 @@ main (int argc, char *argv[])
2654 { 'e', "experiment", NULL, 2671 { 'e', "experiment", NULL,
2655 gettext_noop ("experiment to use"), 2672 gettext_noop ("experiment to use"),
2656 1, &GNUNET_GETOPT_set_one, &opt_verbose}, 2673 1, &GNUNET_GETOPT_set_one, &opt_verbose},
2674 { 'p', "print", NULL,
2675 gettext_noop ("print logging"),
2676 0, &GNUNET_GETOPT_set_one, &opt_print},
2657 GNUNET_GETOPT_OPTION_END 2677 GNUNET_GETOPT_OPTION_END
2658 }; 2678 };
2659 2679
diff --git a/src/ats/gnunet-ats-solver-eval.h b/src/ats/gnunet-ats-solver-eval.h
index 61e3393d7..9098ae7b5 100644
--- a/src/ats/gnunet-ats-solver-eval.h
+++ b/src/ats/gnunet-ats-solver-eval.h
@@ -83,6 +83,15 @@ enum GNUNET_ATS_Solvers
83}; 83};
84 84
85 85
86struct LoggingTimeStep
87{
88 struct LoggingTimeStep *prev;
89 struct LoggingTimeStep *next;
90
91 struct GNUNET_TIME_Absolute timestamp;
92};
93
94
86struct TestPeer 95struct TestPeer
87{ 96{
88 struct TestPeer *prev; 97 struct TestPeer *prev;
@@ -157,6 +166,10 @@ struct LoggingHandle
157{ 166{
158 GNUNET_SCHEDULER_TaskIdentifier logging_task; 167 GNUNET_SCHEDULER_TaskIdentifier logging_task;
159 struct GNUNET_TIME_Relative log_freq; 168 struct GNUNET_TIME_Relative log_freq;
169
170 struct LoggingTimeStep *head;
171
172 struct LoggingTimeStep *tail;
160}; 173};
161 174
162struct Experiment 175struct Experiment