X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a18117755285a374ec3d5830309c924f2830e3ba..f340dc5ebc3806e82509cbf87a775372fb6d14d0:/src/kernel/routing/DijkstraZone.hpp diff --git a/src/kernel/routing/DijkstraZone.hpp b/src/kernel/routing/DijkstraZone.hpp index 51541ce9f7..2e089ede3c 100644 --- a/src/kernel/routing/DijkstraZone.hpp +++ b/src/kernel/routing/DijkstraZone.hpp @@ -11,16 +11,19 @@ typedef struct graph_node_data { int id; int graph_id; /* used for caching internal graph id's */ -} s_graph_node_data_t, *graph_node_data_t; +} s_graph_node_data_t; +typedef s_graph_node_data_t* graph_node_data_t; typedef struct graph_node_map_element { xbt_node_t node; -} s_graph_node_map_element_t, *graph_node_map_element_t; +} s_graph_node_map_element_t; +typedef s_graph_node_map_element_t* graph_node_map_element_t; typedef struct route_cache_element { int* pred_arr; int size; -} s_route_cache_element_t, *route_cache_element_t; +} s_route_cache_element_t; +typedef s_route_cache_element_t* route_cache_element_t; namespace simgrid { namespace kernel { @@ -30,18 +33,24 @@ namespace routing { * Classes * ***********/ -/** Dijkstra routing data: fast initialization, slow lookup, small memory requirements, shortest path routing only */ -class XBT_PRIVATE AsDijkstra : public AsRoutedGraph { +/** @ingroup ROUTING_API + * @brief NetZone with an explicit routing computed on need with Dijsktra + * + * The path between components is computed each time you request it, + * using the Dijkstra algorithm. A cache can be used to reduce the computation. + * + * This result in rather small platform file, very fast initialization, and very low memory requirements, but somehow long path resolution times. + */ +class XBT_PRIVATE DijkstraZone : public RoutedZone { public: - AsDijkstra(As* father, const char* name, bool cached); + DijkstraZone(NetZone* father, const char* name, bool cached); void seal() override; - ~AsDijkstra() override; + ~DijkstraZone() override; xbt_node_t routeGraphNewNode(int id, int graph_id); graph_node_map_element_t nodeMapSearch(int id); void newRoute(int src_id, int dst_id, sg_platf_route_cbarg_t e_route); - /** - * For each vertex (node) already in the graph, + /* For each vertex (node) already in the graph, * make sure it also has a loopback link; this loopback * can potentially already be in the graph, and in that * case nothing will be done. @@ -52,7 +61,7 @@ public: * After this function returns, any node in the graph * will have a loopback attached to it. */ - void getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t route, double* lat) override; + void getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t route, double* lat) override; void addRoute(sg_platf_route_cbarg_t route) override; xbt_graph_t routeGraph_ = nullptr; /* xbt_graph */