SimGrid  3.13
Versatile Simulation of Distributed Systems
simgrid::surf::AsDijkstra Class Reference

Dijkstra routing data: fast initialization, slow lookup, small memory requirements, shortest path routing only. More...

#include <AsDijkstra.hpp>

Inheritance diagram for simgrid::surf::AsDijkstra:
simgrid::surf::AsRoutedGraph simgrid::surf::AsImpl

Public Member Functions

 AsDijkstra (const char *name, bool cached)
 
void seal () override
 
 ~AsDijkstra ()
 
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)
 
void getRouteAndLatency (NetCard *src, NetCard *dst, sg_platf_route_cbarg_t route, double *lat) override
 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. More...
 
void addRoute (sg_platf_route_cbarg_t route) override
 
- Public Member Functions inherited from simgrid::surf::AsRoutedGraph
 AsRoutedGraph (const char *name)
 
 ~AsRoutedGraph ()
 
xbt_dynar_t getOneLinkRoutes () override
 retrieves the list of all routes of size 1 (of type src x dst x Link) More...
 
virtual 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)
 
- Public Member Functions inherited from simgrid::surf::AsImpl
std::vector< surf::Link * > * getBypassRoute (surf::NetCard *src, surf::NetCard *dst)
 

Public Attributes

xbt_graph_t routeGraph_ = nullptr
 
xbt_dict_t graphNodeMap_ = nullptr
 
xbt_dict_t routeCache_ = nullptr
 
- Public Attributes inherited from simgrid::surf::AsImpl
RoutingMode hierarchy_ = RoutingMode::unset
 
surf::NetCardnetcard_ = nullptr
 

Additional Inherited Members

- Public Types inherited from simgrid::surf::AsImpl
enum  RoutingMode { RoutingMode::unset = 0, RoutingMode::base, RoutingMode::recursive }
 
- Static Public Member Functions inherited from simgrid::surf::AsImpl
static void getRouteRecursive (surf::NetCard *src, surf::NetCard *dst, std::vector< surf::Link * > *links, double *latency)
 Recursive function for getRouteAndLatency. More...
 
- Protected Member Functions inherited from simgrid::surf::AsRoutedGraph
void getRouteCheckParams (NetCard *src, NetCard *dst)
 
void addRouteCheckParams (sg_platf_route_cbarg_t route)
 
- Protected Member Functions inherited from simgrid::surf::AsImpl
 AsImpl (const char *name)
 
 ~AsImpl ()
 

Detailed Description

Dijkstra routing data: fast initialization, slow lookup, small memory requirements, shortest path routing only.

Constructor & Destructor Documentation

simgrid::surf::AsDijkstra::AsDijkstra ( const char *  name,
bool  cached 
)
simgrid::surf::AsDijkstra::~AsDijkstra ( )

Member Function Documentation

void simgrid::surf::AsDijkstra::seal ( )
override
xbt_node_t simgrid::surf::AsDijkstra::routeGraphNewNode ( int  id,
int  graph_id 
)
graph_node_map_element_t simgrid::surf::AsDijkstra::nodeMapSearch ( int  id)
void simgrid::surf::AsDijkstra::newRoute ( int  src_id,
int  dst_id,
sg_platf_route_cbarg_t  e_route 
)
void simgrid::surf::AsDijkstra::getRouteAndLatency ( NetCard src,
NetCard dst,
sg_platf_route_cbarg_t  route,
double *  lat 
)
overridevirtual

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.

If no loopback is specified for a node, we will use the loopback that is provided by the routing platform.

After this function returns, any node in the graph will have a loopback attached to it.

Implements simgrid::surf::AsImpl.

void simgrid::surf::AsDijkstra::addRoute ( sg_platf_route_cbarg_t  route)
override

Member Data Documentation

xbt_graph_t simgrid::surf::AsDijkstra::routeGraph_ = nullptr
xbt_dict_t simgrid::surf::AsDijkstra::graphNodeMap_ = nullptr
xbt_dict_t simgrid::surf::AsDijkstra::routeCache_ = nullptr

The documentation for this class was generated from the following files: