X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/30aca4d4af004d1ec899d12f0a9fe3997e9be15e..8f8bd4e0654bdeadb3653e14cd6f3ee8aa465443:/src/kernel/routing/RoutedZone.hpp diff --git a/src/kernel/routing/RoutedZone.hpp b/src/kernel/routing/RoutedZone.hpp index 918856ff89..25be9b45e5 100644 --- a/src/kernel/routing/RoutedZone.hpp +++ b/src/kernel/routing/RoutedZone.hpp @@ -12,16 +12,52 @@ namespace simgrid { namespace kernel { 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. + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Comparison of the RoutedZone subclasses
DijkstraZoneFloydZoneFullZone
Platform-file contentOnly 1-hop routes (rather small)Only 1-hop routes (rather small)Every path, explicitly (very large)
Initialization timeAlmost nothingFloyd-Warshall algorithm: O(n^3)Almost nothing
Memory usage1-hop routes (+ cache of routes)O(n^2) data (intermediate)O(n^2) + sum of path lengths (very large)
Lookup timeDijkstra Algo: O(n^3)not much (reconstruction phase)Almost nothing
ExpressivenessOnly shortest pathOnly shortest pathEverything
+ */ + class XBT_PRIVATE RoutedZone : public NetZoneImpl { public: explicit RoutedZone(NetZone* father, const char* name); void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges) override; virtual sg_platf_route_cbarg_t newExtendedRoute(RoutingMode hierarchy, sg_platf_route_cbarg_t routearg, - int change_order); + bool change_order); protected: - void getRouteCheckParams(NetCard* src, NetCard* dst); + void getRouteCheckParams(NetPoint* src, NetPoint* dst); void addRouteCheckParams(sg_platf_route_cbarg_t route); }; }