- void As::addRoute(sg_platf_route_cbarg_t /*route*/){
- xbt_die("AS %s does not accept new routes (wrong class).",name_);
- }
-
- void As::addBypassRoute(sg_platf_route_cbarg_t e_route){
- /* Argument validity checks */
- if (e_route->gw_dst) {
- XBT_DEBUG("Load bypassASroute from %s@%s to %s@%s",
- e_route->src->name(), e_route->gw_src->name(),
- e_route->dst->name(), e_route->gw_dst->name());
- xbt_assert(!e_route->link_list->empty(), "Bypass route between %s@%s and %s@%s cannot be empty.",
- e_route->src->name(), e_route->gw_src->name(),
- e_route->dst->name(), e_route->gw_dst->name());
- xbt_assert(bypassRoutes_.find({e_route->src->name(),e_route->dst->name()}) == bypassRoutes_.end(),
- "The bypass route between %s@%s and %s@%s already exists.",
- e_route->src->name(), e_route->gw_src->name(), e_route->dst->name(), e_route->gw_dst->name());
- } else {
- XBT_DEBUG("Load bypassRoute from %s to %s", e_route->src->name(), e_route->dst->name());
- xbt_assert(!e_route->link_list->empty(), "Bypass route between %s and %s cannot be empty.",
- e_route->src->name(), e_route->dst->name());
- xbt_assert(bypassRoutes_.find({e_route->src->name(),e_route->dst->name()}) == bypassRoutes_.end(),
- "The bypass route between %s and %s already exists.",
- e_route->src->name(), e_route->dst->name());
- }
-
- /* Build a copy that will be stored in the dict */
- std::vector<surf::Link*> *newRoute = new std::vector<surf::Link*>();
- for (auto link: *e_route->link_list)
- newRoute->push_back(link);
-
- /* Store it */
- bypassRoutes_.insert({{e_route->src->name(),e_route->dst->name()}, newRoute});
- }