X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/13dc60b5feb8778432f44b21022857b241e524fa..82fd162ad0b5fc51a715b6e6e6df55bb52a18b44:/src/surf/network_ns3.cpp diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index 34631b53a2..a9139b1bad 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -56,7 +56,7 @@ NetPointNs3::NetPointNs3() static void clusterCreation_cb(ClusterCreationArgs* cluster) { - for (int i : *cluster->radicals) { + for (int const& i : *cluster->radicals) { // Routers don't create a router on the other end of the private link by themselves. // We just need this router to be given an ID so we create a temporary NetPointNS3 so that it gets one NetPointNs3* host_dst = new NetPointNs3(); @@ -143,6 +143,7 @@ namespace surf { NetworkNS3Model::NetworkNS3Model() : NetworkModel() { NetPointNs3::EXTENSION_ID = simgrid::kernel::routing::NetPoint::extension_create(); + flowFromSock = xbt_dict_new_homogeneous([](void* p) { delete static_cast(p); }); ns3_initialize(ns3_tcp_model.get().c_str()); simgrid::kernel::routing::NetPoint::onCreation.connect([](simgrid::kernel::routing::NetPoint* pt) { @@ -159,13 +160,13 @@ NetworkNS3Model::NetworkNS3Model() : NetworkModel() { } NetworkNS3Model::~NetworkNS3Model() { - for (auto addr : IPV4addr) + for (auto const& addr : IPV4addr) free(addr); IPV4addr.clear(); xbt_dict_free(&flowFromSock); } -LinkImpl* NetworkNS3Model::createLink(const char* name, double bandwidth, double latency, +LinkImpl* NetworkNS3Model::createLink(const std::string& name, double bandwidth, double latency, e_surf_link_sharing_policy_t policy) { return new LinkNS3(this, name, bandwidth, latency); @@ -226,7 +227,7 @@ void NetworkNS3Model::updateActionsState(double now, double delta) std::vector route = std::vector(); action->src_->routeTo(action->dst_, &route, nullptr); - for (auto link : route) + for (auto const& link : route) TRACE_surf_link_set_utilization(link->cname(), action->getCategory(), (data_delta_sent) / delta, now - delta, delta); @@ -236,8 +237,7 @@ void NetworkNS3Model::updateActionsState(double now, double delta) if(sgFlow->finished_){ xbt_dynar_push(socket_to_destroy,&ns3Socket); XBT_DEBUG("Destroy socket %p of action %p", ns3Socket, action); - action->finish(); - action->setState(Action::State::done); + action->finish(Action::State::done); } } @@ -245,7 +245,7 @@ void NetworkNS3Model::updateActionsState(double now, double delta) xbt_dynar_pop(socket_to_destroy,&ns3Socket); if (XBT_LOG_ISENABLED(ns3, xbt_log_priority_debug)) { - SgFlow *flow = (SgFlow*)xbt_dict_get (flowFromSock, ns3Socket); + SgFlow* flow = static_cast(xbt_dict_get(flowFromSock, ns3Socket)); XBT_DEBUG ("Removing socket %p of action %p", ns3Socket, flow->action_); } xbt_dict_remove(flowFromSock, ns3Socket); @@ -256,7 +256,7 @@ void NetworkNS3Model::updateActionsState(double now, double delta) * Resource * ************/ -LinkNS3::LinkNS3(NetworkNS3Model* model, const char* name, double bandwidth, double latency) +LinkNS3::LinkNS3(NetworkNS3Model* model, const std::string& name, double bandwidth, double latency) : LinkImpl(model, name, nullptr) { bandwidth_.peak = bandwidth;