-/* Copyright (c) 2006-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006-2022. 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/kernel/EngineImpl.hpp"
#include "src/kernel/resource/CpuImpl.hpp"
#include "src/kernel/resource/DiskImpl.hpp"
+#include "src/kernel/resource/SplitDuplexLinkImpl.hpp"
#include "src/surf/HostImpl.hpp"
-#include "src/surf/SplitDuplexLinkImpl.hpp"
-#include "src/surf/network_interface.hpp"
+#include "src/kernel/resource/StandardLinkImpl.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_route);
namespace simgrid {
xbt::signal<void(bool symmetrical, kernel::routing::NetPoint* src, kernel::routing::NetPoint* dst,
kernel::routing::NetPoint* gw_src, kernel::routing::NetPoint* gw_dst,
- std::vector<kernel::resource::LinkImpl*> const& link_list)>
+ std::vector<kernel::resource::StandardLinkImpl*> const& link_list)>
NetZoneImpl::on_route_creation;
NetZoneImpl::NetZoneImpl(const std::string& name) : piface_(this), name_(name)
simgrid::s4u::Engine::on_platform_creation();
/* Initialize the surf models. That must be done after we got all config, and before we need the models.
- * That is, after the last <config> tag, if any, and before the first of cluster|peer|zone|trace|trace_connect
+ * That is, after the last <config> tag, if any, and before the first of cluster|peer|zone|trace|trace_cb
*
- * I'm not sure for <trace> and <trace_connect>, there may be a bug here
+ * I'm not sure for <trace> and <trace_cb>, there may be a bug here
* (FIXME: check it out by creating a file beginning with one of these tags)
* but cluster and peer come down to zone creations, so putting this verification here is correct.
*/
return vertices_.size() - 1; // The rank of the newly created object
}
-std::vector<resource::LinkImpl*> NetZoneImpl::get_link_list_impl(const std::vector<s4u::LinkInRoute>& link_list,
- bool backroute) const
+std::vector<resource::StandardLinkImpl*> NetZoneImpl::get_link_list_impl(const std::vector<s4u::LinkInRoute>& link_list,
+ bool backroute) const
{
- std::vector<resource::LinkImpl*> links;
+ std::vector<resource::StandardLinkImpl*> links;
for (const auto& link : link_list) {
if (link.get_link()->get_sharing_policy() != s4u::Link::SharingPolicy::SPLITDUPLEX) {
const auto* sd_link = dynamic_cast<const s4u::SplitDuplexLink*>(link.get_link());
xbt_assert(sd_link,
"Add_route: cast to SpliDuplexLink impossible. This should not happen, please contact SimGrid team");
- resource::LinkImpl* link_impl;
+ resource::StandardLinkImpl* link_impl;
switch (link.get_direction()) {
case s4u::LinkInRoute::Direction::UP:
if (backroute)
/* PRECONDITION: this is the common ancestor of src and dst */
bool NetZoneImpl::get_bypass_route(const NetPoint* src, const NetPoint* dst,
- /* OUT */ std::vector<resource::LinkImpl*>& links, double* latency,
+ /* OUT */ std::vector<resource::StandardLinkImpl*>& links, double* latency,
std::unordered_set<NetZoneImpl*>& netzones)
{
// If never set a bypass route return nullptr without any further computations
}
void NetZoneImpl::get_global_route(const NetPoint* src, const NetPoint* dst,
- /* OUT */ std::vector<resource::LinkImpl*>& links, double* latency)
+ /* OUT */ std::vector<resource::StandardLinkImpl*>& links, double* latency)
{
std::unordered_set<NetZoneImpl*> netzones;
get_global_route_with_netzones(src, dst, links, latency, netzones);
}
void NetZoneImpl::get_global_route_with_netzones(const NetPoint* src, const NetPoint* dst,
- /* OUT */ std::vector<resource::LinkImpl*>& links, double* latency,
- std::unordered_set<NetZoneImpl*>& netzones)
+ /* OUT */ std::vector<resource::StandardLinkImpl*>& links,
+ double* latency, std::unordered_set<NetZoneImpl*>& netzones)
{
Route route;