-} s_sg_platf_host_link_cbarg_t, *sg_platf_host_link_cbarg_t;
-
-typedef struct {
- const char* id;
- const char* coord;
-} s_sg_platf_router_cbarg_t, *sg_platf_router_cbarg_t;
-
-typedef struct {
- const char* id;
- double bandwidth;
- tmgr_trace_t bandwidth_trace;
- double latency;
- tmgr_trace_t latency_trace;
- tmgr_trace_t state_trace;
- e_surf_link_sharing_policy_t policy;
- xbt_dict_t properties;
-} s_sg_platf_link_cbarg_t, *sg_platf_link_cbarg_t;
-
-typedef struct s_sg_platf_peer_cbarg *sg_platf_peer_cbarg_t;
-typedef struct s_sg_platf_peer_cbarg {
- const char* id;
+} s_sg_platf_host_link_cbarg_t;
+typedef s_sg_platf_host_link_cbarg_t* sg_platf_host_link_cbarg_t;
+
+class LinkCreationArgs {
+public:
+ std::string id;
+ double bandwidth = 0;
+ tmgr_trace_t bandwidth_trace = nullptr;
+ double latency = 0;
+ tmgr_trace_t latency_trace = nullptr;
+ tmgr_trace_t state_trace = nullptr;
+ e_surf_link_sharing_policy_t policy = SURF_LINK_FATPIPE;
+ std::map<std::string, std::string>* properties = nullptr;
+};
+
+class PeerCreationArgs {
+public:
+ std::string id;