+
+ simgrid::s4u::Engine::get_instance()->netpoint_unregister(netpoint_);
+}
+const char* NetZoneImpl::get_cname() const
+{
+ return name_.c_str();
+}
+NetZoneImpl* NetZoneImpl::get_father()
+{
+ return father_;
+}
+void NetZoneImpl::seal()
+{
+ sealed_ = true;
+}
+/** @brief Returns the list of direct children (no grand-children)
+ *
+ * This returns the internal data, no copy. Don't mess with it.
+ */
+std::vector<NetZoneImpl*>* NetZoneImpl::get_children()
+{
+ return &children_;
+}
+/** @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<s4u::Host*> NetZoneImpl::get_all_hosts()
+{
+ std::vector<s4u::Host*> res;
+ for (auto const& card : get_vertices()) {
+ s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->get_name());
+ if (host != nullptr)
+ res.push_back(host);
+ }
+ return res;
+}
+int NetZoneImpl::get_host_count()
+{
+ int count = 0;
+ for (auto const& card : get_vertices()) {
+ s4u::Host* host = simgrid::s4u::Host::by_name_or_null(card->get_name());
+ if (host != nullptr)
+ count++;
+ }
+ return count;