-void declare_host_variable(const std::string& variable, const std::string& color = std::string(""));
-void set_host_variable(const s4u::Host* host, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void add_host_variable(const s4u::Host* host, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void sub_host_variable(const s4u::Host* host, const std::string& variable, double value,
- double time = simgrid_get_clock());
-const std::set<std::string, std::less<>>& get_host_variables();
-
-void declare_link_variable(const std::string& variable, const std::string& color = std::string(""));
-void set_link_variable(const s4u::Link* link, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void set_link_variable(const s4u::Host* src, const s4u::Host* dst, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void add_link_variable(const s4u::Link* link, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void add_link_variable(const s4u::Host* src, const s4u::Host* dst, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void sub_link_variable(const s4u::Link* link, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void sub_link_variable(const s4u::Host* src, const s4u::Host* dst, const std::string& variable, double value,
- double time = simgrid_get_clock());
-const std::set<std::string, std::less<>>& get_link_variables();
-
-void declare_vm_variable(const std::string& variable, const std::string& color = std::string(""));
-void set_vm_variable(const s4u::VirtualMachine* vm, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void add_vm_variable(const s4u::VirtualMachine* vm, const std::string& variable, double value,
- double time = simgrid_get_clock());
-void sub_vm_variable(const s4u::VirtualMachine* vm, const std::string& variable, double value,
- double time = simgrid_get_clock());
-const std::set<std::string, std::less<>>& get_vm_variables();
+/* User-variables related functions*/
+/* for host variables */
+XBT_PUBLIC void declare_host_variable(const std::string& variable, const std::string& color = std::string(""));
+XBT_PUBLIC void set_host_variable(const std::string& host, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC void add_host_variable(const std::string& host, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC void sub_host_variable(const std::string& host, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC const std::set<std::string, std::less<>>& get_host_variables();
+
+/* for link variables */
+XBT_PUBLIC void declare_link_variable(const std::string& variable, const std::string& color = std::string(""));
+XBT_PUBLIC void set_link_variable(const std::string& link, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC void add_link_variable(const std::string& link, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC void sub_link_variable(const std::string& link, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+/* for link variables, but with src and dst used for get_route */
+XBT_PUBLIC void set_link_variable(const std::string& src, const std::string& dst, const std::string& variable,
+ double value, double time = simgrid_get_clock());
+XBT_PUBLIC void add_link_variable(const std::string& src, const std::string& dst, const std::string& variable,
+ double value, double time = simgrid_get_clock());
+XBT_PUBLIC void sub_link_variable(const std::string& src, const std::string& dst, const std::string& variable,
+ double value, double time = simgrid_get_clock());
+XBT_PUBLIC const std::set<std::string, std::less<>>& get_link_variables();
+
+/* for VM variables */
+XBT_PUBLIC void declare_vm_variable(const std::string& variable, const std::string& color = std::string(""));
+XBT_PUBLIC void set_vm_variable(const std::string& vm, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC void add_vm_variable(const std::string& vm, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC void sub_vm_variable(const std::string& vm, const std::string& variable, double value,
+ double time = simgrid_get_clock());
+XBT_PUBLIC const std::set<std::string, std::less<>>& get_vm_variables();