X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/67fe7b9d6c00b390a8598bc1e72d42d8343cb218..b9625f82f86db0674e911887addce45dca31b57f:/src/kernel/routing/FloydZone.cpp diff --git a/src/kernel/routing/FloydZone.cpp b/src/kernel/routing/FloydZone.cpp index 625a810c2e..7bfd8ba334 100644 --- a/src/kernel/routing/FloydZone.cpp +++ b/src/kernel/routing/FloydZone.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2009-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2020. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -8,6 +8,7 @@ #include "src/surf/network_interface.hpp" #include "src/surf/xml/platf_private.hpp" #include "surf/surf.hpp" +#include "xbt/string.hpp" #include #include @@ -22,12 +23,9 @@ namespace simgrid { namespace kernel { namespace routing { -FloydZone::FloydZone(NetZoneImpl* father, std::string name, resource::NetworkModel* netmodel) +FloydZone::FloydZone(NetZoneImpl* father, const std::string& name, resource::NetworkModel* netmodel) : RoutedZone(father, name, netmodel) { - predecessor_table_ = nullptr; - cost_table_ = nullptr; - link_table_ = nullptr; } FloydZone::~FloydZone() @@ -57,7 +55,7 @@ void FloydZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs* do { int pred = TO_FLOYD_PRED(src->id(), cur); if (pred == -1) - THROWF(arg_error, 0, "No route from '%s' to '%s'", src->get_cname(), dst->get_cname()); + throw std::invalid_argument(xbt::string_printf("No route from '%s' to '%s'", src->get_cname(), dst->get_cname())); route_stack.push_back(TO_FLOYD_LINK(pred, cur)); cur = pred; } while (cur != src->id()); @@ -69,7 +67,7 @@ void FloydZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs* NetPoint* prev_dst_gw = nullptr; while (not route_stack.empty()) { - RouteCreationArgs* e_route = route_stack.back(); + const RouteCreationArgs* e_route = route_stack.back(); route_stack.pop_back(); if (hierarchy_ == RoutingMode::recursive && prev_dst_gw != nullptr && prev_dst_gw->get_cname() != e_route->gw_src->get_cname()) { @@ -120,7 +118,7 @@ void FloydZone::add_route(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoi dst->get_cname()); TO_FLOYD_LINK(src->id(), dst->id()) = - new_extended_route(hierarchy_, src, dst, gw_src, gw_dst, link_list, symmetrical, 1); + new_extended_route(hierarchy_, src, dst, gw_src, gw_dst, link_list, symmetrical, true); TO_FLOYD_PRED(src->id(), dst->id()) = src->id(); TO_FLOYD_COST(src->id(), dst->id()) = (TO_FLOYD_LINK(src->id(), dst->id()))->link_list.size(); @@ -148,7 +146,7 @@ void FloydZone::add_route(NetPoint* src, NetPoint* dst, NetPoint* gw_src, NetPoi src->get_cname(), gw_dst->get_cname()); TO_FLOYD_LINK(dst->id(), src->id()) = - new_extended_route(hierarchy_, src, dst, gw_src, gw_dst, link_list, symmetrical, 0); + new_extended_route(hierarchy_, src, dst, gw_src, gw_dst, link_list, symmetrical, false); TO_FLOYD_PRED(dst->id(), src->id()) = dst->id(); TO_FLOYD_COST(dst->id(), src->id()) = (TO_FLOYD_LINK(dst->id(), src->id()))->link_list.size(); /* count of links, old model assume 1 */