-typedef enum {
- INSTR_US_DECLARE,
- INSTR_US_SET,
- INSTR_US_ADD,
- INSTR_US_SUB,
-} InstrUserVariable;
-
-XBT_PUBLIC(void) TRACE_user_variable(double time,
- const char *resource,
- const char *variable,
- const char *father_type,
- double value,
- InstrUserVariable what);
-
-#define TRACE_host_variable_declare(var) \
- TRACE_user_variable(0,NULL,var,"HOST",0,INSTR_US_DECLARE);
-
-#define TRACE_host_variable_set_with_time(time,host,var,value) \
- TRACE_user_variable(time,host,var,"HOST",value,INSTR_US_SET);
-
-#define TRACE_host_variable_add_with_time(time,host,var,value) \
- TRACE_user_variable(time,host,var,"HOST",value,INSTR_US_ADD);
-
-#define TRACE_host_variable_sub_with_time(time,host,var,value) \
- TRACE_user_variable(time,host,var,"HOST",value,INSTR_US_SUB);
-
-#define TRACE_host_variable_set(host,var,value) \
- TRACE_user_variable(MSG_get_clock(),host,var,"HOST",value,INSTR_US_SET);
-
-#define TRACE_host_variable_add(host,var,value) \
- TRACE_user_variable(MSG_get_clock(),host,var,"HOST",value,INSTR_US_ADD);
-
-#define TRACE_host_variable_sub(host,var,value) \
- TRACE_user_variable(MSG_get_clock(),host,var,"HOST",value,INSTR_US_SUB);
-
-#define TRACE_link_variable_declare(var) \
- TRACE_user_variable(0,NULL,var,"LINK",0,INSTR_US_DECLARE);
-
-#define TRACE_link_variable_set_with_time(time,link,var,value) \
- TRACE_user_variable(time,link,var,"LINK",value,INSTR_US_SET);
-
-#define TRACE_link_variable_add_with_time(time,link,var,value) \
- TRACE_user_variable(time,link,var,"LINK",value,INSTR_US_ADD);
+/* for host variables */
+XBT_PUBLIC(void) TRACE_host_variable_declare (const char *var);
+XBT_PUBLIC(void) TRACE_host_variable_declare_with_color (const char *var, const char *color);
+XBT_PUBLIC(void) TRACE_host_variable_set (const char *host, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_host_variable_add (const char *host, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_host_variable_sub (const char *host, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_host_variable_set_with_time (double time, const char *host, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_host_variable_add_with_time (double time, const char *host, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_host_variable_sub_with_time (double time, const char *host, const char *variable, double value);
+
+/* for link variables */
+XBT_PUBLIC(void) TRACE_link_variable_declare (const char *var);
+XBT_PUBLIC(void) TRACE_link_variable_declare_with_color (const char *var, const char *color);
+XBT_PUBLIC(void) TRACE_link_variable_set (const char *link, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_variable_add (const char *link, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_variable_sub (const char *link, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_variable_set_with_time (double time, const char *link, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_variable_add_with_time (double time, const char *link, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_variable_sub_with_time (double time, const char *link, const char *variable, double value);
+
+/* for link variables, but with src and dst used for get_route */
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_set (const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_add (const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_sub (const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_set_with_time (double time, const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_add_with_time (double time, const char *src, const char *dst, const char *variable, double value);
+XBT_PUBLIC(void) TRACE_link_srcdst_variable_sub_with_time (double time, const char *src, const char *dst, const char *variable, double value);