X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dc9b8feaddd53842f6204f4f24409b2382393fa9..db90e1631e8edef2c777129b97bb4707990cc911:/include/simgrid/kernel/routing/FatTreeZone.hpp diff --git a/include/simgrid/kernel/routing/FatTreeZone.hpp b/include/simgrid/kernel/routing/FatTreeZone.hpp index 0e69e0dc14..f5802671ea 100644 --- a/include/simgrid/kernel/routing/FatTreeZone.hpp +++ b/include/simgrid/kernel/routing/FatTreeZone.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2014-2021. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -51,7 +51,7 @@ public: * instead of passing by an upper level switch. */ resource::LinkImpl* loopback; - FatTreeNode(ClusterCreationArgs* cluster, int id, int level, int position); + FatTreeNode(const ClusterCreationArgs* cluster, int id, int level, int position); }; /** @brief Link in a fat tree (@ref FatTreeZone). @@ -61,7 +61,7 @@ public: */ class FatTreeLink { public: - FatTreeLink(ClusterCreationArgs* cluster, FatTreeNode* source, FatTreeNode* destination); + FatTreeLink(const ClusterCreationArgs* cluster, FatTreeNode* source, FatTreeNode* destination); /** Link going up in the tree */ resource::LinkImpl* up_link_; /** Link going down in the tree */ @@ -104,13 +104,6 @@ public: ~FatTreeZone() override; void get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs* into, double* latency) override; - /** @brief Generate the fat tree - * - * Once all processing nodes have been added, this will make sure the fat - * tree is generated by calling generateLabels(), generateSwitches() and - * then connection all nodes between them, using their label. - */ - void seal() override; /** @brief Read the parameters in topo_parameters field. * * It will also store the cluster for future use. @@ -120,6 +113,13 @@ public: void generate_dot_file(const std::string& filename = "fat_tree.dot") const; private: + /** @brief Generate the fat tree + * + * Once all processing nodes have been added, this will make sure the fat + * tree is generated by calling generateLabels(), generateSwitches() and + * then connection all nodes between them, using their label. + */ + void do_seal() override; // description of a PGFT (TODO : better doc) unsigned long levels_ = 0; std::vector num_children_per_node_; // number of children by node @@ -138,8 +138,8 @@ private: void generate_labels(); void generate_switches(); int connect_node_to_parents(FatTreeNode* node); - bool are_related(FatTreeNode* parent, FatTreeNode* child); - bool is_in_sub_tree(FatTreeNode* root, FatTreeNode* node); + bool are_related(FatTreeNode* parent, FatTreeNode* child) const; + bool is_in_sub_tree(FatTreeNode* root, FatTreeNode* node) const; }; } // namespace routing } // namespace kernel