X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5089a0a98b27f5eeee62321dff4f025f1648f025..4d35ee43e0a5662a6027525b0409133c0fbfd022:/src/surf/HostImpl.cpp diff --git a/src/surf/HostImpl.cpp b/src/surf/HostImpl.cpp index 0765a88984..2366c33b37 100644 --- a/src/surf/HostImpl.cpp +++ b/src/surf/HostImpl.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2013-2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2013-2020. 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. */ @@ -34,13 +34,13 @@ HostImpl::HostImpl(s4u::Host* host) : piface_(host) HostImpl::~HostImpl() { - /* All processes should be gone when the host is turned off (by the end of the simulation). */ + /* All actors should be gone when the host is turned off (by the end of the simulation). */ if (not actor_list_.empty()) { std::string msg = std::string("Shutting down host, but it's not empty:"); - for (auto const& process : actor_list_) - msg += "\n\t" + std::string(process.get_name()); + for (auto const& actor : actor_list_) + msg += "\n\t" + std::string(actor.get_name()); - SIMIX_display_process_status(); + simix_global->display_all_actor_status(); xbt_die("%s", msg.c_str()); } for (auto const& arg : actors_at_boot_) @@ -82,7 +82,7 @@ void HostImpl::turn_off(kernel::actor::ActorImpl* issuer) } // When a host is turned off, we want to keep only the actors that should restart for when it will boot again. // Then get rid of the others. - auto elm = remove_if(begin(actors_at_boot_), end(actors_at_boot_), [](kernel::actor::ProcessArg* arg) { + auto elm = remove_if(begin(actors_at_boot_), end(actors_at_boot_), [](const kernel::actor::ProcessArg* arg) { if (arg->auto_restart) return false; delete arg; @@ -111,7 +111,14 @@ std::vector HostImpl::get_disks() return disks; } -void HostImpl::add_disk(s4u::Disk* disk) +void HostImpl::set_disks(const std::vector& disks, s4u::Host* host) +{ + disks_ = std::move(disks); + for (auto d : disks_) + d->set_host(host); +} + +void HostImpl::add_disk(const s4u::Disk* disk) { disks_.push_back(disk->get_impl()); } @@ -136,6 +143,13 @@ std::vector HostImpl::get_attached_storages() storages.push_back(s.second->get_iface()->get_cname()); return storages; } - +std::unordered_map* HostImpl::get_mounted_storages() +{ + std::unordered_map* mounts = new std::unordered_map(); + for (auto const& m : storage_) { + mounts->insert({m.first, m.second->get_iface()}); + } + return mounts; +} } // namespace surf } // namespace simgrid