aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2014-02-11 08:08:37 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2014-02-11 08:08:37 +0000
commit97484d04c2ae1deb5e95c4472977b2333ce55b60 (patch)
treec1e1fa69e653528d662018da157ffb4ba6bdb2a2 /src
parent0af4aedc3acedf4bbe5d1878b6ac7744f85bf0b7 (diff)
downloadgnunet-97484d04c2ae1deb5e95c4472977b2333ce55b60.tar.gz
gnunet-97484d04c2ae1deb5e95c4472977b2333ce55b60.zip
logging task
Diffstat (limited to 'src')
-rw-r--r--src/ats/experiments/example.exp2
-rw-r--r--src/ats/gnunet-ats-solver-eval.c93
-rw-r--r--src/ats/gnunet-ats-solver-eval.h7
3 files changed, 90 insertions, 12 deletions
diff --git a/src/ats/experiments/example.exp b/src/ats/experiments/example.exp
index 22cb9328f..289a3701b 100644
--- a/src/ats/experiments/example.exp
+++ b/src/ats/experiments/example.exp
@@ -3,7 +3,7 @@
3 masters = 1 3 masters = 1
4 slaves = 2 4 slaves = 2
5 max_duration = 15 s 5 max_duration = 15 s
6 log_freq = 100 ms 6 log_freq = 1000 ms
7 cfg_file = gnunet_ats_sim_default.conf 7 cfg_file = gnunet_ats_sim_default.conf
8 8
9[episode-0] 9[episode-0]
diff --git a/src/ats/gnunet-ats-solver-eval.c b/src/ats/gnunet-ats-solver-eval.c
index b5c57bb94..57d5f7582 100644
--- a/src/ats/gnunet-ats-solver-eval.c
+++ b/src/ats/gnunet-ats-solver-eval.c
@@ -32,6 +32,8 @@
32 32
33static struct Experiment *e; 33static struct Experiment *e;
34 34
35static struct LoggingHandle *l;
36
35static struct GNUNET_ATS_TESTING_SolverHandle *sh; 37static struct GNUNET_ATS_TESTING_SolverHandle *sh;
36 38
37/** 39/**
@@ -80,6 +82,72 @@ print_generator_type (enum GeneratorType g)
80} 82}
81 83
82/** 84/**
85 * Logging
86 */
87
88static void
89logging_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
90{
91 struct LoggingHandle *l = cls;
92
93 l->logging_task = GNUNET_SCHEDULER_NO_TASK;
94
95 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n");
96
97 l->logging_task = GNUNET_SCHEDULER_add_delayed (l->log_freq, &logging_task, l);
98
99}
100
101struct LoggingHandle *
102GNUNET_ATS_solver_logging_start (struct GNUNET_TIME_Relative freq)
103{
104 struct LoggingHandle *l;
105 l = GNUNET_new (struct LoggingHandle);
106
107 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Start logging every %s\n",
108 GNUNET_STRINGS_relative_time_to_string(freq, GNUNET_NO));
109
110 /* Iterate over peers */
111
112 l->log_freq = freq;
113 l->logging_task = GNUNET_SCHEDULER_add_now (&logging_task, l);
114
115 return l;
116}
117
118void
119GNUNET_ATS_solver_logging_now (struct LoggingHandle *l)
120{
121 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Logging\n");
122}
123
124void
125GNUNET_ATS_solver_logging_stop (struct LoggingHandle *l)
126{
127 if (GNUNET_SCHEDULER_NO_TASK != l->logging_task)
128 GNUNET_SCHEDULER_cancel (l->logging_task);
129
130 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stop logging\n");
131
132 l->logging_task = GNUNET_SCHEDULER_NO_TASK;
133}
134
135void
136GNUNET_ATS_solver_logging_eval (struct LoggingHandle *l)
137{
138
139}
140
141void
142GNUNET_ATS_solver_logging_free (struct LoggingHandle *l)
143{
144 if (GNUNET_SCHEDULER_NO_TASK != l->logging_task)
145 GNUNET_SCHEDULER_cancel (l->logging_task);
146 l->logging_task = GNUNET_SCHEDULER_NO_TASK;
147 GNUNET_free (l);
148}
149
150/**
83 * Property Generators 151 * Property Generators
84 */ 152 */
85 153
@@ -145,8 +213,7 @@ get_property (struct PropertyGenerator *pg)
145 213
146 214
147static void 215static void
148set_prop_task (void *cls, 216set_prop_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
149 const struct GNUNET_SCHEDULER_TaskContext *tc)
150{ 217{
151 struct PropertyGenerator *pg = cls; 218 struct PropertyGenerator *pg = cls;
152 double pref_value; 219 double pref_value;
@@ -1725,9 +1792,6 @@ enforce_start_preference (struct GNUNET_ATS_TEST_Operation *op)
1725 GNUNET_free (pg); 1792 GNUNET_free (pg);
1726 } 1793 }
1727 1794
1728 fprintf (stderr, "ENFORECE: %s, %u\n", print_generator_type (op->gen_type),
1729 op->base_rate);
1730
1731 GNUNET_ATS_solver_generate_preferences_start (op->peer_id, 1795 GNUNET_ATS_solver_generate_preferences_start (op->peer_id,
1732 op->address_id, 1796 op->address_id,
1733 op->gen_type, 1797 op->gen_type,
@@ -2333,8 +2397,18 @@ done ()
2333{ 2397{
2334 /* Clean up experiment */ 2398 /* Clean up experiment */
2335 GNUNET_ATS_solver_generate_preferences_stop_all (); 2399 GNUNET_ATS_solver_generate_preferences_stop_all ();
2336 GNUNET_ATS_solvers_experimentation_stop (e); 2400
2337 e = NULL; 2401 if (NULL != e)
2402 {
2403 GNUNET_ATS_solvers_experimentation_stop (e);
2404 e = NULL;
2405 }
2406
2407 if (NULL != l)
2408 {
2409 GNUNET_ATS_solver_logging_free (l);
2410 l = NULL;
2411 }
2338 2412
2339 /* Shutdown */ 2413 /* Shutdown */
2340 end_now(); 2414 end_now();
@@ -2351,7 +2425,7 @@ experiment_done_cb (struct Experiment *e, struct GNUNET_TIME_Relative duration,i
2351 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n"); 2425 GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Experiment failed \n");
2352 2426
2353 /* Stop logging */ 2427 /* Stop logging */
2354 // GNUNET_ATS_TEST_logging_stop (l); 2428 GNUNET_ATS_solver_logging_stop (l);
2355 2429
2356 /* Stop traffic generation */ 2430 /* Stop traffic generation */
2357 // GNUNET_ATS_TEST_generate_traffic_stop_all(); 2431 // GNUNET_ATS_TEST_generate_traffic_stop_all();
@@ -2452,7 +2526,6 @@ run (void *cls, char * const *args, const char *cfgfile,
2452 return; 2526 return;
2453 } 2527 }
2454 2528
2455
2456 /* load solver */ 2529 /* load solver */
2457 sh = GNUNET_ATS_solvers_solver_start (solver); 2530 sh = GNUNET_ATS_solvers_solver_start (solver);
2458 if (NULL == sh) 2531 if (NULL == sh)
@@ -2464,7 +2537,7 @@ run (void *cls, char * const *args, const char *cfgfile,
2464 } 2537 }
2465 2538
2466 /* start logging */ 2539 /* start logging */
2467 2540 l = GNUNET_ATS_solver_logging_start (e->log_freq);
2468 2541
2469 /* run experiment */ 2542 /* run experiment */
2470 GNUNET_ATS_solvers_experimentation_run (e, episode_done_cb, 2543 GNUNET_ATS_solvers_experimentation_run (e, episode_done_cb,
diff --git a/src/ats/gnunet-ats-solver-eval.h b/src/ats/gnunet-ats-solver-eval.h
index 007118dde..ca79e9602 100644
--- a/src/ats/gnunet-ats-solver-eval.h
+++ b/src/ats/gnunet-ats-solver-eval.h
@@ -82,7 +82,7 @@ struct GNUNET_ATS_TEST_Operation
82 struct GNUNET_TIME_Relative frequency; 82 struct GNUNET_TIME_Relative frequency;
83 83
84 enum OperationType type; 84 enum OperationType type;
85 enum GeneratorType tg_type; 85 enum GeneratorType gen_type;
86 enum GNUNET_ATS_PreferenceKind pref_type; 86 enum GNUNET_ATS_PreferenceKind pref_type;
87 enum GNUNET_ATS_Property prop_type; 87 enum GNUNET_ATS_Property prop_type;
88}; 88};
@@ -97,6 +97,11 @@ struct Episode
97 struct GNUNET_ATS_TEST_Operation *tail; 97 struct GNUNET_ATS_TEST_Operation *tail;
98}; 98};
99 99
100struct LoggingHandle
101{
102 GNUNET_SCHEDULER_TaskIdentifier logging_task;
103 struct GNUNET_TIME_Relative log_freq;
104};
100 105
101struct Experiment 106struct Experiment
102{ 107{