X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5a4bab52900d62dfd3dec063ece907974899db09..4c34ab4cc0212a08411fd0fa4ef9d452db66d3f3:/include/simgrid/s4u/NetZone.hpp diff --git a/include/simgrid/s4u/NetZone.hpp b/include/simgrid/s4u/NetZone.hpp index e95407be73..6ad381c6cd 100644 --- a/include/simgrid/s4u/NetZone.hpp +++ b/include/simgrid/s4u/NetZone.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2016-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2016-2021. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -7,8 +7,10 @@ #define SIMGRID_S4U_NETZONE_HPP #include +#include #include +#include #include #include #include @@ -24,6 +26,8 @@ namespace s4u { * s4u::Engine). */ class XBT_PUBLIC NetZone { + kernel::routing::NetZoneImpl* const pimpl_; + protected: friend kernel::routing::NetZoneImpl; @@ -35,24 +39,26 @@ public: /** @brief Retrieves the name of that netzone as a C string */ const char* get_cname() const; - NetZone* get_father(); + XBT_ATTRIB_DEPRECATED_v331("Please use get_parent()") NetZone* get_father(); + NetZone* get_parent() const; + NetZone* set_parent(const NetZone* parent); - std::vector get_all_hosts(); - int get_host_count(); + std::vector get_all_hosts() const; + int get_host_count() const; kernel::routing::NetZoneImpl* get_impl() const { return pimpl_; } -private: - kernel::routing::NetZoneImpl* const pimpl_; - -public: /** Get the properties assigned to a netzone */ const std::unordered_map* get_properties() const; /** Retrieve the property value (or nullptr if not set) */ const char* get_property(const std::string& key) const; void set_property(const std::string& key, const std::string& value); - std::vector get_children(); + std::vector get_children() const; + NetZone* add_child(const NetZone* new_zone); + + void extract_xbt_graph(const s_xbt_graph_t* graph, std::map>* nodes, + std::map>* edges); /* Add content to the netzone, at parsing time. It should be sealed afterward. */ int add_component(kernel::routing::NetPoint* elm); /* A host, a router or a netzone, whatever */