X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/dc6d65f0d0ee70a889f1621abb1d3778a3da11d6..df3bdefc3df0a0810cf48411dd588ed63c65a302:/src/kernel/routing/NetCard.hpp diff --git a/src/kernel/routing/NetCard.hpp b/src/kernel/routing/NetCard.hpp index 9213dd4540..0f0b45ddf9 100644 --- a/src/kernel/routing/NetCard.hpp +++ b/src/kernel/routing/NetCard.hpp @@ -6,10 +6,11 @@ #ifndef KERNEL_ROUTING_NETCARD_HPP_ #define KERNEL_ROUTING_NETCARD_HPP_ +#include #include #include -#include "src/kernel/routing/AsImpl.hpp" +#include "src/kernel/routing/NetZoneImpl.hpp" /* #include #include @@ -18,45 +19,44 @@ namespace simgrid { namespace kernel { namespace routing { -/** @ingroup SURF_routing_interface - * @brief Network cards are the vertices in the graph representing the network, used to compute paths between nodes. +/** @ingroup ROUTING_API + * @brief Network cards are the vertices in the graph representing the network, used to compute paths between nodes. * - * @details This represents a position in the network. One can route information between two netcards + * @details This represents a position in the network. One can send information between two netcards */ -class NetCard { +class NetCard : public simgrid::xbt::Extendable { + public: - enum class Type { Host, Router, As }; - - NetCard(std::string name, NetCard::Type componentType, AsImpl* containingAS) - : name_(name), componentType_(componentType), containingAS_(containingAS) - { - if (containingAS != nullptr) - id_ = containingAS->addComponent(this); - simgrid::kernel::routing::NetCard::onCreation(this); - } + enum class Type { Host, Router, NetZone }; + + NetCard(std::string name, NetCard::Type componentType, NetZoneImpl* netzone_p); ~NetCard() = default; - // Our rank in the vertices_ array of our containing AS. + // Our rank in the vertices_ array of the netzone that contains us. unsigned int id() { return id_; } std::string name() { return name_; } const char* cname() { return name_.c_str(); } - // This is the AS in which I am - AsImpl* containingAS() { return containingAS_; } + /** @brief the NetZone in which this netcard is included */ + NetZoneImpl* netzone() { return netzone_; } - bool isAS() { return componentType_ == Type::As; } + bool isNetZone() { return componentType_ == Type::NetZone; } bool isHost() { return componentType_ == Type::Host; } bool isRouter() { return componentType_ == Type::Router; } static simgrid::xbt::signal onCreation; + bool operator<(const NetCard &rhs) const { return name_ < rhs.name_; } + private: unsigned int id_; std::string name_; NetCard::Type componentType_; - AsImpl* containingAS_; + NetZoneImpl* netzone_; }; } } } +XBT_PUBLIC(sg_netcard_t) sg_netcard_by_name_or_null(const char* name); + #endif /* KERNEL_ROUTING_NETCARD_HPP_ */