X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7cd7ddd52235514ae35982529da77668e261b756..b2f3150048cd87c9e16e251fea65c40221fd56ea:/src/kernel/routing/AsCluster.hpp diff --git a/src/kernel/routing/AsCluster.hpp b/src/kernel/routing/AsCluster.hpp index 013ca08bc6..9dd3d090e0 100644 --- a/src/kernel/routing/AsCluster.hpp +++ b/src/kernel/routing/AsCluster.hpp @@ -6,6 +6,8 @@ #ifndef SIMGRID_ROUTING_CLUSTER_HPP_ #define SIMGRID_ROUTING_CLUSTER_HPP_ +#include + #include "src/kernel/routing/AsImpl.hpp" namespace simgrid { @@ -14,23 +16,23 @@ namespace routing { class XBT_PRIVATE AsCluster: public AsImpl { public: - explicit AsCluster(const char*name); - ~AsCluster() override; + explicit AsCluster(As* father, const char* name); - void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency) override; + void getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency) override; void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override; virtual void create_links_for_node(sg_platf_cluster_cbarg_t cluster, int id, int rank, int position); virtual void parse_specific_arguments(sg_platf_cluster_cbarg_t cluster) {} - std::vector privateLinks_; + /* We use a map instead of a std::vector here because that's a sparse vector. Some values may not exist */ + std::unordered_map privateLinks_; Link* backbone_ = nullptr; void *loopback_ = nullptr; NetCard *router_ = nullptr; bool hasLimiter_ = false; bool hasLoopback_ = false; - int linkCountPerNode_ = 1; /* may be 1 (if only a private link), 2 or 3 (if limiter and loopback) */ + unsigned int linkCountPerNode_ = 1; /* may be 1 (if only a private link), 2 or 3 (if limiter and loopback) */ };