-/* Copyright (c) 2009-2016. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2009-2017. 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. */
#include "src/surf/network_interface.hpp"
#include "xbt/log.h"
-#include <float.h>
+#include <cfloat>
#include <limits>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_floyd, surf, "Routing part of surf");
namespace kernel {
namespace routing {
-FloydZone::FloydZone(NetZone* father, const char* name) : RoutedZone(father, name)
+FloydZone::FloydZone(NetZone* father, std::string name) : RoutedZone(father, name)
{
predecessorTable_ = nullptr;
costTable_ = nullptr;
{
if (linkTable_ == nullptr) // Dealing with a parse error in the file?
return;
- int table_size = vertices_.size();
+ unsigned int table_size = getTableSize();
/* Delete link_table */
- for (int i = 0; i < table_size; i++)
- for (int j = 0; j < table_size; j++)
+ for (unsigned int i = 0; i < table_size; i++)
+ for (unsigned int j = 0; j < table_size; j++)
routing_route_free(TO_FLOYD_LINK(i, j));
xbt_free(linkTable_);
void FloydZone::getLocalRoute(NetPoint* src, NetPoint* dst, sg_platf_route_cbarg_t route, double* lat)
{
- size_t table_size = vertices_.size();
+ unsigned int table_size = getTableSize();
getRouteCheckParams(src, dst);
getGlobalRoute(prev_dst_gw, e_route->gw_src, route->link_list, lat);
}
- for (auto link : *e_route->link_list) {
+ for (auto const& link : *e_route->link_list) {
route->link_list->push_back(link);
if (lat)
*lat += link->latency();
void FloydZone::addRoute(sg_platf_route_cbarg_t route)
{
/* set the size of table routing */
- int table_size = static_cast<int>(vertices_.size());
+ unsigned int table_size = getTableSize();
addRouteCheckParams(route);
linkTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size); /* actual link between src and dst */
/* Initialize costs and predecessors */
- for (int i = 0; i < table_size; i++)
- for (int j = 0; j < table_size; j++) {
+ for (unsigned int i = 0; i < table_size; i++)
+ for (unsigned int j = 0; j < table_size; j++) {
TO_FLOYD_COST(i, j) = DBL_MAX;
TO_FLOYD_PRED(i, j) = -1;
TO_FLOYD_LINK(i, j) = nullptr;
void FloydZone::seal()
{
/* set the size of table routing */
- size_t table_size = vertices_.size();
+ unsigned int table_size = getTableSize();
if (not linkTable_) {
/* Create Cost, Predecessor and Link tables */