X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/831de10adaaf8910940aa280e2ac2dd075b5ffe5..b2f3150048cd87c9e16e251fea65c40221fd56ea:/src/kernel/routing/AsCluster.hpp diff --git a/src/kernel/routing/AsCluster.hpp b/src/kernel/routing/AsCluster.hpp index 4b747b1b21..9dd3d090e0 100644 --- a/src/kernel/routing/AsCluster.hpp +++ b/src/kernel/routing/AsCluster.hpp @@ -6,34 +6,36 @@ #ifndef SIMGRID_ROUTING_CLUSTER_HPP_ #define SIMGRID_ROUTING_CLUSTER_HPP_ +#include + #include "src/kernel/routing/AsImpl.hpp" namespace simgrid { +namespace kernel { 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) {} - xbt_dynar_t privateLinks_ = xbt_dynar_new(sizeof(s_surf_parsing_link_up_down_t),nullptr); + /* 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) */ }; -} -} +}}} // namespace #endif /* SIMGRID_ROUTING_CLUSTER_HPP_ */