X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/68819337078a47f1dbb14f2a0dc4aa8a7b7aecd0..5e0b70c4585952ce9b329721b6ef17bf35cab3a1:/src/surf/xml/platf_private.hpp diff --git a/src/surf/xml/platf_private.hpp b/src/surf/xml/platf_private.hpp index e3edce6d4b..3e0cfe68ed 100644 --- a/src/surf/xml/platf_private.hpp +++ b/src/surf/xml/platf_private.hpp @@ -12,6 +12,7 @@ #include "simgrid/host.h" #include "src/surf/xml/platf.hpp" #include +#include SG_BEGIN_DECL() #include "src/surf/xml/simgrid_dtd.h" @@ -56,16 +57,17 @@ typedef struct { const char* link_down; } s_sg_platf_host_link_cbarg_t, *sg_platf_host_link_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; +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; + xbt_dict_t properties = nullptr; +}; typedef struct s_sg_platf_peer_cbarg *sg_platf_peer_cbarg_t; typedef struct s_sg_platf_peer_cbarg { @@ -81,11 +83,11 @@ typedef struct s_sg_platf_peer_cbarg { typedef struct s_sg_platf_route_cbarg *sg_platf_route_cbarg_t; typedef struct s_sg_platf_route_cbarg { bool symmetrical; - sg_netcard_t src; - sg_netcard_t dst; - sg_netcard_t gw_src; - sg_netcard_t gw_dst; - std::vector *link_list; + sg_netpoint_t src; + sg_netpoint_t dst; + sg_netpoint_t gw_src; + sg_netpoint_t gw_dst; + std::vector* link_list; } s_sg_platf_route_cbarg_t; typedef struct s_sg_platf_cluster_cbarg *sg_platf_cluster_cbarg_t; @@ -94,7 +96,7 @@ typedef struct s_sg_platf_cluster_cbarg { const char* prefix; const char* suffix; std::vector* radicals; - double speed; + std::vector speeds; int core_amount; double bw; double lat; @@ -188,7 +190,7 @@ typedef struct s_sg_platf_AS_cbarg { #define SG_PLATF_AS_INITIALIZER {nullptr,0} /********** Routing **********/ -void routing_cluster_add_backbone(Link* bb); +void routing_cluster_add_backbone(simgrid::surf::LinkImpl* bb); /*** END of the parsing cruft ***/ XBT_PUBLIC(void) sg_platf_begin(); // Start a new platform @@ -199,9 +201,9 @@ XBT_PUBLIC(void) sg_platf_new_AS_seal(); // That AS is fully XBT_PUBLIC(void) sg_platf_new_host (sg_platf_host_cbarg_t host); // Add an host to the currently described AS XBT_PUBLIC(void) sg_platf_new_hostlink(sg_platf_host_link_cbarg_t h); // Add an host_link to the currently described AS -XBT_PUBLIC(simgrid::kernel::routing::NetCard*) +XBT_PUBLIC(simgrid::kernel::routing::NetPoint*) sg_platf_new_router(const char* name, const char* coords); // Add a router to the currently described AS -XBT_PUBLIC(void) sg_platf_new_link (sg_platf_link_cbarg_t link); // Add a link to the currently described AS +XBT_PUBLIC(void) sg_platf_new_link(LinkCreationArgs* link); // Add a link to the currently described AS XBT_PUBLIC(void) sg_platf_new_peer (sg_platf_peer_cbarg_t peer); // Add a peer to the currently described AS XBT_PUBLIC(void) sg_platf_new_cluster(sg_platf_cluster_cbarg_t clust); // Add a cluster to the currently described AS XBT_PUBLIC(void) sg_platf_new_cabinet(sg_platf_cabinet_cbarg_t cabinet); // Add a cabinet to the currently described AS