Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
convert S4U to my current coding convention
[simgrid.git] / src / surf / surf_routing.hpp
index 8b30f5f..c3b614b 100644 (file)
 #include <xbt/signal.hpp>
 
 #include "surf_interface.hpp"
+#include "src/surf/xml/platf_private.hpp" // FIXME: including this here is pure madness. KILKILKIL XML.
 #include <float.h>
 
+#include <vector>
+#include <map>
+
+SG_BEGIN_DECL()
 XBT_PUBLIC(void) routing_model_create( void *loopback);
+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()
 
 namespace simgrid {
 namespace surf {
@@ -64,6 +72,7 @@ public:
 
 private:
   bool sealed_ = false; // We cannot add more content when sealed
+  std::map<std::string, std::vector<Link*>*> *bypassRoutes_ = nullptr;
 
 public:
   /**
@@ -96,12 +105,12 @@ public:
 
   virtual void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)=0;
 
-  virtual sg_platf_route_cbarg_t getBypassRoute(NetCard *src, NetCard *dst,double *lat);
+  std::vector<Link*> *getBypassRoute(NetCard *src, NetCard *dst);
 
   /* Add content to the AS, at parsing time. It should be sealed afterward. */
   virtual int addComponent(NetCard *elm); /* A host, a router or an AS, whatever */
   virtual void addRoute(sg_platf_route_cbarg_t route);
-  virtual void parseBypassroute(sg_platf_route_cbarg_t e_route);
+  void addBypassRoute(sg_platf_route_cbarg_t e_route);
 };
 
 struct XBT_PRIVATE NetCardImpl : public NetCard {