Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Split-Duplex: new management
[simgrid.git] / include / simgrid / kernel / routing / RoutedZone.hpp
index 57a3fc5..08e5c13 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2019. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2013-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. */
@@ -15,7 +15,7 @@ namespace routing {
 /** @ingroup ROUTING_API
  *  @brief NetZone with an explicit routing (abstract class)
  *
- * This abstract class factorizes code between its subclasses: Full, Dijkstra and Floyd.
+ * This abstract class factors code between its subclasses: Full, Dijkstra and Floyd.
  *
  * <table>
  * <caption>Comparison of the RoutedZone subclasses</caption>
@@ -50,45 +50,31 @@ namespace routing {
 
 class XBT_PRIVATE RoutedZone : public NetZoneImpl {
 public:
-  explicit RoutedZone(NetZoneImpl* father, std::string name, resource::NetworkModel* netmodel);
+  explicit RoutedZone(const std::string& name);
 
-  void get_graph(xbt_graph_t graph, std::map<std::string, xbt_node_t>* nodes,
-                 std::map<std::string, xbt_edge_t>* edges) override;
+  void get_graph(const s_xbt_graph_t* graph, std::map<std::string, xbt_node_t, std::less<>>* nodes,
+                 std::map<std::string, xbt_edge_t, std::less<>>* edges) override;
 
 protected:
-  virtual RouteCreationArgs* new_extended_route(RoutingMode hierarchy, NetPoint* src, NetPoint* dst, NetPoint* gw_src,
-                                                NetPoint* gw_dst, std::vector<resource::LinkImpl*>& link_list,
-                                                bool symmetrical, bool change_order);
-  void get_route_check_params(NetPoint* src, NetPoint* dst);
-  void add_route_check_params(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst,
-                              std::vector<resource::LinkImpl*>& link_list, bool symmetrical);
-
-  // deprecated
-  XBT_ATTRIB_DEPRECATED_v323("Please use RoutedZone::new_extended_route()") virtual RouteCreationArgs* newExtendedRoute(
-      RoutingMode hierarchy, NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst,
-      std::vector<resource::LinkImpl*>& link_list, bool symmetrical, bool change_order)
-  {
-    return new_extended_route(hierarchy, src, dst, gw_src, gw_dst, link_list, symmetrical, change_order);
-  }
-  XBT_ATTRIB_DEPRECATED_v323("Please use RoutedZone::get_route_check_params()") void getRouteCheckParams(NetPoint* src,
-                                                                                                         NetPoint* dst)
+  Route* new_extended_route(RoutingMode hierarchy, NetPoint* gw_src, NetPoint* gw_dst,
+                            const std::vector<resource::LinkImpl*>& link_list, bool preserve_order);
+  XBT_ATTRIB_DEPRECATED_v330("Please drop 2nd, 3rd and 7th parameters") virtual Route* new_extended_route(
+      RoutingMode hierarchy, NetPoint* /* src */, NetPoint* /* dst */, NetPoint* gw_src, NetPoint* gw_dst,
+      std::vector<resource::LinkImpl*>& link_list, bool /* symmetrical */, bool preserve_order)
   {
-    get_route_check_params(src, dst);
-  }
-  XBT_ATTRIB_DEPRECATED_v323("Please use RoutedZone::add_route_check_params()") void addRouteCheckParams(
-      NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst, std::vector<resource::LinkImpl*>& link_list,
-      bool symmetrical)
-  {
-    add_route_check_params(src, dst, gw_src, gw_dst, link_list, symmetrical);
+    return new_extended_route(hierarchy, gw_src, gw_dst, link_list, preserve_order);
   }
+  void get_route_check_params(const NetPoint* src, const NetPoint* dst) const;
+  void add_route_check_params(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoint* gw_dst,
+                              const std::vector<s4u::LinkInRoute>& link_list, bool symmetrical) const;
 };
 } // namespace routing
 } // namespace kernel
 } // namespace simgrid
 
-XBT_PRIVATE xbt_node_t new_xbt_graph_node(xbt_graph_t graph, const char* name,
-                                          std::map<std::string, xbt_node_t>* nodes);
-XBT_PRIVATE xbt_edge_t new_xbt_graph_edge(xbt_graph_t graph, xbt_node_t s, xbt_node_t d,
-                                          std::map<std::string, xbt_edge_t>* edges);
+XBT_PRIVATE xbt_node_t new_xbt_graph_node(const s_xbt_graph_t* graph, const char* name,
+                                          std::map<std::string, xbt_node_t, std::less<>>* nodes);
+XBT_PRIVATE xbt_edge_t new_xbt_graph_edge(const s_xbt_graph_t* graph, xbt_node_t s, xbt_node_t d,
+                                          std::map<std::string, xbt_edge_t, std::less<>>* edges);
 
 #endif /* SIMGRID_ROUTING_GENERIC_HPP_ */