Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
reduce the amount of dynars created by getOneLinkRoutes()
[simgrid.git] / src / kernel / routing / AsImpl.hpp
index 7ebe6a3..dd3b26d 100644 (file)
@@ -30,8 +30,8 @@ protected:
   ~AsImpl() override;
   
 public:
-  /** @brief attach the given host to that AS */
-  void attachHost(s4u::Host * host);
+  /** @brief Make an host within that AS */
+  simgrid::s4u::Host* createHost(const char* name, std::vector<double>* speedPerPstate, int coreAmount);
 
   /**
    * @brief Probe the routing path between two points
@@ -59,12 +59,14 @@ public:
    */
   virtual void getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t into, double *latency)=0;
   /** @brief retrieves the list of all routes of size 1 (of type src x dst x Link) */
-  virtual xbt_dynar_t getOneLinkRoutes();
-  std::vector<surf::Link*> *getBypassRoute(routing::NetCard *src, routing::NetCard *dst);
+  virtual void getOneLinkRoutes(xbt_dynar_t accumulator);
+  /* returns whether we found a bypass path */
+  bool getBypassRoute(routing::NetCard * src, routing::NetCard * dst,
+                      /* OUT */ std::vector<surf::Link*> * links, double* latency);
 
   virtual void getGraph(xbt_graph_t graph, xbt_dict_t nodes, xbt_dict_t edges)=0;
-  static void getRouteRecursive(routing::NetCard *src, routing::NetCard *dst, /* OUT */ std::vector<surf::Link*> * links, double *latency);
-
+  static void getRouteRecursive(routing::NetCard * src, routing::NetCard * dst,
+                                /* OUT */ std::vector<surf::Link*> * links, double* latency);
 
   enum class RoutingMode {
     unset = 0,  /**< Undefined type                                   */