Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Compile trace_mgr with g++. Next step: objectification
[simgrid.git] / teshsuite / surf / trace_usage / trace_usage.cpp
1 /* A few tests for the trace library                                       */
2
3 /* Copyright (c) 2004-2006, 2009-2015. The SimGrid Team.
4  * All rights reserved.                                                     */
5
6 /* This program is free software; you can redistribute it and/or modify it
7  * under the terms of the license (GNU LGPL) which comes with this package. */
8
9 #include "surf/surf.h"
10
11 #include "xbt/log.h"
12
13 #include <stdlib.h>
14 #include <stdio.h>
15 #include <string.h>
16 #include "src/surf/trace_mgr.hpp"
17
18 XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test,
19                              "Messages specific for surf example");
20
21 static void test(void)
22 {
23   tmgr_fes_t history = tmgr_history_new();
24   tmgr_trace_t trace_A = tmgr_trace_new_from_file("trace_A.txt");
25   tmgr_trace_t trace_B = tmgr_trace_new_from_file("trace_B.txt");
26   double next_event_date = -1.0;
27   double value = -1.0;
28   char *resource = NULL;
29   char *host_A = strdup("Host A");
30   char *host_B = strdup("Host B");
31
32   tmgr_history_add_trace(history, trace_A, 1.0, 2, host_A);
33   tmgr_history_add_trace(history, trace_B, 0.0, 0, host_B);
34
35   while ((next_event_date = tmgr_history_next_date(history)) != -1.0) {
36     XBT_DEBUG("%g" " : \n", next_event_date);
37     while (tmgr_history_get_next_event_leq(history, next_event_date,
38                                            &value, (void **) &resource)) {
39       XBT_DEBUG("\t %s : " "%g" "\n", resource, value);
40     }
41     if (next_event_date > 1000)
42       break;
43   }
44
45   tmgr_history_free(history);
46   free(host_B);
47   free(host_A);
48 }
49
50 int main(int argc, char **argv)
51 {
52   surf_init(&argc, argv);
53   test();
54   surf_exit();
55   return 0;
56 }