Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Kill the useless NS3Sim class
[simgrid.git] / src / surf / surf_private.h
1 /* Copyright (c) 2004-2015. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef _SURF_SURF_PRIVATE_H
8 #define _SURF_SURF_PRIVATE_H
9
10 #include "surf/surf.h"
11 #include "surf/maxmin.h"
12 #include "src/surf/trace_mgr.hpp"
13 #include <stdio.h>
14
15 #define NO_MAX_DURATION -1.0
16
17 SG_BEGIN_DECL()
18
19 XBT_PUBLIC_DATA(xbt_dict_t) watched_hosts_lib;
20
21 extern XBT_PRIVATE const char *surf_action_state_names[6];
22
23 /** @ingroup SURF_interface
24  * @brief Possible update mechanisms
25  */
26 typedef enum {
27   UM_FULL,      /**< Full update mechanism: the remaining time of every action is recomputed at each step */
28   UM_LAZY,      /**< Lazy update mechanism: only the modified actions get recomputed.
29                      It may be slower than full if your system is tightly coupled to the point where every action
30                      gets recomputed anyway. In that case, you'd better not try to be cleaver with lazy and go for
31                      a simple full update.  */
32   UM_UNDEFINED  /**< Mechanism not defined */
33 } e_UM_t;
34
35 /* Generic functions common to all models */
36
37 XBT_PRIVATE FILE *surf_fopen(const char *name, const char *mode);
38
39 /* The __surf_is_absolute_file_path() returns 1 if
40  * file_path is a absolute file path, in the other
41  * case the function returns 0.
42  */
43 XBT_PRIVATE int __surf_is_absolute_file_path(const char *file_path);
44
45 /**
46  * Routing logic
47  */
48
49 extern XBT_PRIVATE simgrid::trace_mgr::future_evt_set *future_evt_set;
50
51
52 XBT_PUBLIC(void) routing_exit(void);
53 XBT_PUBLIC(void) storage_register_callbacks(void);
54
55 XBT_PUBLIC(void) routing_register_callbacks(void);
56
57 XBT_PUBLIC(void) generic_get_graph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges, AS_t rc);
58 XBT_PRIVATE void parse_after_config(void);
59
60 /********** Tracing **********/
61 /* from surf_instr.c */
62 void TRACE_surf_host_set_speed(double date, const char *resource, double power);
63 void TRACE_surf_link_set_bandwidth(double date, const char *resource, double bandwidth);
64
65 SG_END_DECL()
66
67 #endif                          /* _SURF_SURF_PRIVATE_H */