* under the terms of the license (GNU LGPL) which comes with this package. */
#include "src/kernel/routing/NetCard.hpp"
-#include "src/surf/surf_routing.hpp"
-#include <simgrid/s4u/host.hpp>
+#include "simgrid/s4u/engine.hpp"
+#include "simgrid/s4u/host.hpp"
+#include "surf/surf_routing.h"
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_route);
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route, surf, "Routing part of surf");
namespace simgrid {
namespace kernel {
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 h = sg_host_by_name(name);
- simgrid::kernel::routing::NetCard* netcard = h == nullptr ? nullptr : h->pimpl_netcard;
- if (!netcard)
- netcard =
- static_cast<simgrid::kernel::routing::NetCard*>(xbt_lib_get_or_null(as_router_lib, name, ROUTING_ASR_LEVEL));
- return netcard;
+ return simgrid::s4u::Engine::instance()->netcardByNameOrNull(name);
}