X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a79a8e1cab86ccc687cfbc97b01b735acb996f16..40616078da72e823931c1fb884949054699ec39d:/src/kernel/routing/RoutedZone.hpp diff --git a/src/kernel/routing/RoutedZone.hpp b/src/kernel/routing/RoutedZone.hpp index 8db82e1f02..25be9b45e5 100644 --- a/src/kernel/routing/RoutedZone.hpp +++ b/src/kernel/routing/RoutedZone.hpp @@ -12,20 +12,61 @@ 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); }; } } } // namespace +SG_BEGIN_DECL() +XBT_PRIVATE xbt_node_t new_xbt_graph_node(xbt_graph_t graph, const char* name, xbt_dict_t nodes); +XBT_PRIVATE xbt_edge_t new_xbt_graph_edge(xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges); +SG_END_DECL() + #endif /* SIMGRID_ROUTING_GENERIC_HPP_ */