Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
don't load a private header from s4u/NetZone.hpp
[simgrid.git] / src / kernel / routing / FloydZone.hpp
index c3023b2..69ead53 100644 (file)
@@ -12,14 +12,24 @@ namespace simgrid {
 namespace kernel {
 namespace routing {
 
-/** Floyd routing data: slow initialization, fast lookup, lesser memory requirements, shortest path routing only */
-class XBT_PRIVATE AsFloyd : public AsRoutedGraph {
+/** @ingroup ROUTING_API
+ *  @brief NetZone with an explicit routing computed at initialization with Floyd-Warshal
+ *
+ *  The path between components is computed at creation time from every one-hop links,
+ *  using the Floyd-Warshal algorithm.
+ *
+ *  This result in rather small platform file, slow initialization time,  and intermediate memory requirements
+ *  (somewhere between the one of @{DijkstraZone} and the one of @{FullZone}).
+ */
+class XBT_PRIVATE FloydZone : public RoutedZone {
 public:
-  explicit AsFloyd(As* father, const char* name);
-  ~AsFloyd() override;
+  explicit FloydZone(NetZone* father, std::string name);
+  ~FloydZone() override;
 
-  void getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t into, double* latency) override;
-  void addRoute(sg_platf_route_cbarg_t route) override;
+  void getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t into, double* latency) override;
+  void addRoute(kernel::routing::NetPoint* src, kernel::routing::NetPoint* dst, kernel::routing::NetPoint* gw_src,
+                kernel::routing::NetPoint* gw_dst, std::vector<simgrid::surf::LinkImpl*>& link_list,
+                bool symmetrical) override;
   void seal() override;
 
 private: