X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6d417ba5e0856a12a73d784447bbf07cf5fdbf1a..85b9970b238b0cac935a72bca09d62d5fe3c38e8:/include/simgrid/s4u/Engine.hpp diff --git a/include/simgrid/s4u/Engine.hpp b/include/simgrid/s4u/Engine.hpp index 8d9477c734..452d152f80 100644 --- a/include/simgrid/s4u/Engine.hpp +++ b/include/simgrid/s4u/Engine.hpp @@ -85,11 +85,15 @@ public: protected: friend s4u::Host; + friend s4u::Link; friend s4u::Storage; friend kernel::routing::NetPoint; friend kernel::routing::NetZoneImpl; + friend kernel::resource::LinkImpl; void host_register(std::string name, simgrid::s4u::Host* host); void host_unregister(std::string name); + void link_register(std::string name, simgrid::s4u::Link* link); + void link_unregister(std::string name); void storage_register(std::string name, simgrid::s4u::Storage* storage); void storage_unregister(std::string name); void netpoint_register(simgrid::kernel::routing::NetPoint* card); @@ -105,6 +109,12 @@ public: size_t get_link_count(); std::vector get_all_links(); std::vector get_filtered_links(std::function filter); + simgrid::s4u::Link* link_by_name(std::string name); + simgrid::s4u::Link* link_by_name_or_null(std::string name); + + size_t get_actor_count(); + std::vector get_all_actors(); + std::vector get_filtered_actors(std::function filter); size_t get_storage_count(); std::vector get_all_storages(); @@ -120,10 +130,10 @@ public: simgrid::s4u::NetZone* netzone_by_name_or_null(const char* name); /** @brief Retrieves all netzones of the type indicated by the template argument */ - template std::vector filter_netzones_by_type() + template std::vector get_filtered_netzones() { std::vector res; - filter_netzones_by_type_recursive(get_netzone_root(), &res); + get_filtered_netzones_recursive(get_netzone_root(), &res); return res; } @@ -194,15 +204,13 @@ public: } XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_host_count()") size_t getHostCount() { return get_host_count(); } - XBT_ATTRIB_DEPRECATED_v322("Engine::getHostList() is deprecated in favor of Engine::get_all_hosts(). Please switch " - "before v3.22") void getHostList(std::vector* whereTo); + XBT_ATTRIB_DEPRECATED_v322("Please use Engine::get_all_hosts()") void getHostList(std::vector* whereTo); XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_all_hosts()") std::vector getAllHosts() { return get_all_hosts(); } XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_link_count()") size_t getLinkCount() { return get_link_count(); } - XBT_ATTRIB_DEPRECATED_v322("Engine::getLinkList() is deprecated in favor of Engine::get_all_links(). Please " - "switch before v3.22") void getLinkList(std::vector* list); + XBT_ATTRIB_DEPRECATED_v322("Please use Engine::get_all_links()") void getLinkList(std::vector* list); XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_link_list()") std::vector getAllLinks() { return get_all_links(); @@ -214,8 +222,7 @@ public: XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_clock()") static double getClock() { return get_clock(); } XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_all_netpoints()") void getNetpointList( std::vector* list); - XBT_ATTRIB_DEPRECATED_v323("Please use Engine::netpoint_by_name_or_null()") - simgrid::kernel::routing::NetPoint* getNetpointByNameOrNull(std::string name) + XBT_ATTRIB_DEPRECATED_v323("Please use Engine::netpoint_by_name_or_null()") simgrid::kernel::routing::NetPoint* getNetpointByNameOrNull(std::string name) { return netpoint_by_name_or_null(name); } @@ -223,8 +230,7 @@ public: { return get_netzone_root(); } - XBT_ATTRIB_DEPRECATED_v323( - "Please use Engine::netzone_by_name_or_null()") simgrid::s4u::NetZone* getNetzoneByNameOrNull(const char* name) + XBT_ATTRIB_DEPRECATED_v323("Please use Engine::netzone_by_name_or_null()") simgrid::s4u::NetZone* getNetzoneByNameOrNull(const char* name) { return netzone_by_name_or_null(name); } @@ -232,7 +238,7 @@ public: XBT_ATTRIB_DEPRECATED_v323("Please use Engine::filter_netzones_by_type()") void getNetzoneByType( std::vector* whereto) { - filter_netzones_by_type_recursive(get_netzone_root(), whereto); + get_filtered_netzones_recursive(get_netzone_root(), whereto); } XBT_ATTRIB_DEPRECATED_v323("Please use Engine::get_instance()") static s4u::Engine* getInstance() @@ -263,10 +269,10 @@ extern XBT_PUBLIC xbt::signal on_time_advance; /** Callback fired when the time cannot jump because of inter-actors deadlock */ extern XBT_PUBLIC xbt::signal on_deadlock; -template XBT_PRIVATE void filter_netzones_by_type_recursive(s4u::NetZone* current, std::vector* whereto) +template XBT_PRIVATE void get_filtered_netzones_recursive(s4u::NetZone* current, std::vector* whereto) { - for (auto const& elem : *(current->getChildren())) { - filter_netzones_by_type_recursive(elem, whereto); + for (auto const& elem : *(current->get_children())) { + get_filtered_netzones_recursive(elem, whereto); if (elem == dynamic_cast(elem)) whereto->push_back(dynamic_cast(elem)); }