* under the terms of the license (GNU LGPL) which comes with this package. */
#include "src/kernel/routing/NetCard.hpp"
+#include "simgrid/s4u/engine.hpp"
+#include "simgrid/s4u/host.hpp"
#include "surf/surf_routing.h"
-#include <simgrid/s4u/host.hpp>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route, surf, "Routing part of surf");
namespace routing {
simgrid::xbt::signal<void(NetCard*)> NetCard::onCreation;
+
+NetCard::NetCard(std::string name, NetCard::Type componentType, NetZoneImpl* netzone_p)
+ : name_(name), componentType_(componentType), netzone_(netzone_p)
+{
+ if (netzone_p != nullptr)
+ id_ = netzone_p->addComponent(this);
+ xbt_dict_set(netcards_dict, name.c_str(), static_cast<void*>(this), nullptr);
+ simgrid::kernel::routing::NetCard::onCreation(this);
+}
}
}
} // namespace simgrid::kernel::routing
*/
simgrid::kernel::routing::NetCard* sg_netcard_by_name_or_null(const char* name)
{
- sg_host_t host = sg_host_by_name(name);
- return (host != nullptr) ? host->pimpl_netcard
- : static_cast<simgrid::kernel::routing::NetCard*>(xbt_lib_get_or_null(as_router_lib, name, ROUTING_ASR_LEVEL));
+ return simgrid::s4u::Engine::instance()->netcardByNameOrNull(name);
}