+public:
+ size_t get_host_count();
+ /** @brief Returns the list of all hosts found in the platform */
+ std::vector<Host*> get_all_hosts();
+ std::vector<Host*> get_filtered_hosts(const std::function<bool(Host*)>& filter);
+ Host* host_by_name(const std::string& name);
+ Host* host_by_name_or_null(const std::string& name);
+
+ size_t get_link_count();
+ std::vector<Link*> get_all_links();
+ std::vector<Link*> get_filtered_links(const std::function<bool(Link*)>& filter);
+ Link* link_by_name(const std::string& name);
+ Link* link_by_name_or_null(const std::string& name);
+
+ size_t get_actor_count();
+ std::vector<ActorPtr> get_all_actors();
+ std::vector<ActorPtr> get_filtered_actors(const std::function<bool(ActorPtr)>& filter);
+
+ size_t get_storage_count();
+ std::vector<Storage*> get_all_storages();
+ Storage* storage_by_name(const std::string& name);
+ Storage* storage_by_name_or_null(const std::string& name);
+
+ std::vector<kernel::routing::NetPoint*> get_all_netpoints();
+ kernel::routing::NetPoint* netpoint_by_name_or_null(const std::string& name);
+
+ NetZone* get_netzone_root();
+ void set_netzone_root(NetZone* netzone);
+
+ NetZone* netzone_by_name_or_null(const std::string& name);
+
+ /** @brief Retrieves all netzones of the type indicated by the template argument */
+ template <class T> std::vector<T*> get_filtered_netzones()
+ {
+ static_assert(std::is_base_of<kernel::routing::NetZoneImpl, T>::value,
+ "Filtering netzones is only possible for subclasses of kernel::routing::NetZoneImpl");
+ std::vector<T*> res;
+ get_filtered_netzones_recursive(get_netzone_root(), &res);
+ return res;
+ }
+
+ /** Returns whether SimGrid was initialized yet -- mostly for internal use */
+ static bool is_initialized();