X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/527d6ea1ad739bddb768c4dc654085ddce6fe8bb..14696475e1a6145501ae0f9d6104a82ab2ffa64d:/src/s4u/s4u_engine.cpp diff --git a/src/s4u/s4u_engine.cpp b/src/s4u/s4u_engine.cpp index 7c23adc3c0..5734a1f680 100644 --- a/src/s4u/s4u_engine.cpp +++ b/src/s4u/s4u_engine.cpp @@ -78,6 +78,19 @@ void Engine::loadDeployment(const char *deploy) { SIMIX_launch_application(deploy); } +// FIXME: The following duplicates the content of s4u::Host +extern std::map host_list; +/** @brief Returns the amount of hosts in the platform */ +size_t Engine::hostCount() +{ + return host_list.size(); +} +/** @brief Fills the passed list with all hosts found in the platform */ +void Engine::hostList(std::vector* list) +{ + for (auto kv : host_list) + list->push_back(kv.second); +} void Engine::run() { if (MC_is_active()) { @@ -97,13 +110,9 @@ static s4u::NetZone* netzoneByNameRecursive(s4u::NetZone* current, const char* n if(!strcmp(current->name(), name)) return current; - xbt_dict_cursor_t cursor = nullptr; - char* key; - s4u::NetZone* elem; - xbt_dict_foreach(current->children(), cursor, key, elem) { + for (auto elem : *(current->children())) { simgrid::s4u::NetZone* tmp = netzoneByNameRecursive(elem, name); if (tmp != nullptr) { - xbt_dict_cursor_free(&cursor); return tmp; } }