/* 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 "xbt/log.h"
+#include <xbt/log.h>
+
+#include <simgrid/s4u/host.hpp>
+#include <simgrid/s4u/As.hpp>
-#include "simgrid/s4u/As.hpp"
#include "src/surf/surf_routing.hpp"
#include "src/surf/network_interface.hpp" // Link FIXME: move to proper header
namespace simgrid {
namespace s4u {
- As::As(const char *name)
- : name_(xbt_strdup(name))
- {
+ As::As(As* father, const char* name) : father_(father), name_(xbt_strdup(name))
+ {
}
void As::seal()
{
xbt_dict_free(&children_);
- xbt_dynar_free(&vertices_);
for (auto &kv : bypassRoutes_)
delete kv.second;
xbt_free(name_);
{
xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t), nullptr);
- for (unsigned int index = 0; index < xbt_dynar_length(vertices_); index++) {
- simgrid::routing::NetCard *card = xbt_dynar_get_as(vertices_, index, simgrid::routing::NetCard*);
- simgrid::s4u::Host *host = simgrid::s4u::Host::by_name_or_null(card->name());
+ for (auto card : vertices_) {
+ s4u::Host *host = simgrid::s4u::Host::by_name_or_null(card->name());
if (host!=nullptr)
xbt_dynar_push(res, &host);
}
return res;
}
- int As::addComponent(routing::NetCard *elm) {
- xbt_dynar_push_as(vertices_, routing::NetCard*, elm);
- return xbt_dynar_length(vertices_)-1;
+ int As::addComponent(kernel::routing::NetCard *elm) {
+ vertices_.push_back(elm);
+ return vertices_.size()-1; // The rank of the newly created object
}
void As::addRoute(sg_platf_route_cbarg_t /*route*/){