X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c7c6662f2627dddac82f15cb8d4f1b42ac23e2b9..9da45f53bdedff9ac9320a7a3c2ac1d5b9184ce2:/src/s4u/s4u_Netzone.cpp diff --git a/src/s4u/s4u_Netzone.cpp b/src/s4u/s4u_Netzone.cpp index d805c8c828..d361ce0b65 100644 --- a/src/s4u/s4u_Netzone.cpp +++ b/src/s4u/s4u_Netzone.cpp @@ -17,9 +17,9 @@ namespace s4u { simgrid::xbt::signal& link_list)> - NetZone::onRouteCreation; -simgrid::xbt::signal NetZone::onCreation; -simgrid::xbt::signal NetZone::onSeal; + NetZone::on_route_creation; +simgrid::xbt::signal NetZone::on_creation; +simgrid::xbt::signal NetZone::on_seal; NetZone::NetZone(NetZone* father, std::string name) : father_(father), name_(name) { @@ -38,26 +38,26 @@ NetZone::~NetZone() delete children_; } -std::unordered_map* NetZone::getProperties() +std::unordered_map* NetZone::get_properties() { - return simgrid::simix::kernelImmediate([this] { return &properties_; }); + return simgrid::simix::simcall([this] { return &properties_; }); } /** Retrieve the property value (or nullptr if not set) */ -const char* NetZone::getProperty(const char* key) +const char* NetZone::get_property(const char* key) { return properties_.at(key).c_str(); } -void NetZone::setProperty(const char* key, const char* value) +void NetZone::set_property(const char* key, const char* value) { - simgrid::simix::kernelImmediate([this, key, value] { properties_[key] = value; }); + simgrid::simix::simcall([this, key, value] { properties_[key] = value; }); } /** @brief Returns the list of direct children (no grand-children) * * This function returns the internal copy of the children, not a copy. Don't mess with it! */ -std::vector* NetZone::getChildren() +std::vector* NetZone::get_children() { return children_; } @@ -66,11 +66,27 @@ const char* NetZone::get_cname() const { return name_.c_str(); } -NetZone* NetZone::getFather() +NetZone* NetZone::get_father() { return father_; } +/** @brief Returns the list of the hosts found in this NetZone (not recursively) + * + * Only the hosts that are directly contained in this NetZone are retrieved, + * not the ones contained in sub-netzones. + */ +std::vector NetZone::get_all_hosts() +{ + std::vector res; + for (auto const& card : vertices_) { + s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->get_name()); + if (host != nullptr) + res.push_back(host); + } + return res; +} + void NetZone::getHosts(std::vector* whereto) { for (auto const& card : vertices_) { @@ -80,7 +96,7 @@ void NetZone::getHosts(std::vector* whereto) } } -int NetZone::getHostCount() +int NetZone::get_host_count() { int count = 0; for (auto const& card : vertices_) { @@ -91,7 +107,7 @@ int NetZone::getHostCount() return count; } -int NetZone::addComponent(kernel::routing::NetPoint* elm) +int NetZone::add_component(kernel::routing::NetPoint* elm) { vertices_.push_back(elm); return vertices_.size() - 1; // The rank of the newly created object @@ -111,7 +127,7 @@ void NetZone::add_route(kernel::routing::NetPoint* /*src*/, kernel::routing::Net sg_netzone_t sg_zone_get_root() { - return simgrid::s4u::Engine::get_instance()->getNetRoot(); + return simgrid::s4u::Engine::get_instance()->get_netzone_root(); } const char* sg_zone_get_name(sg_netzone_t netzone) @@ -121,31 +137,30 @@ const char* sg_zone_get_name(sg_netzone_t netzone) sg_netzone_t sg_zone_get_by_name(const char* name) { - return simgrid::s4u::Engine::get_instance()->getNetzoneByNameOrNull(name); + return simgrid::s4u::Engine::get_instance()->netzone_by_name_or_null(name); } void sg_zone_get_sons(sg_netzone_t netzone, xbt_dict_t whereto) { - for (auto const& elem : *netzone->getChildren()) { + for (auto const& elem : *netzone->get_children()) { xbt_dict_set(whereto, elem->get_cname(), static_cast(elem), nullptr); } } const char* sg_zone_get_property_value(sg_netzone_t netzone, const char* name) { - return netzone->getProperty(name); + return netzone->get_property(name); } void sg_zone_set_property_value(sg_netzone_t netzone, const char* name, char* value) { - netzone->setProperty(name, value); + netzone->set_property(name, value); } void sg_zone_get_hosts(sg_netzone_t netzone, xbt_dynar_t whereto) { /* converts vector to dynar */ - std::vector hosts; - netzone->getHosts(&hosts); + std::vector hosts = netzone->get_all_hosts(); for (auto const& host : hosts) xbt_dynar_push(whereto, &host); }