X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/84402e8e2ee2a2d0bef25fdceb0a263ed8b471f6..8fb33d38a40ca0d377aa543a401d34309514e542:/src/surf/HostImpl.cpp diff --git a/src/surf/HostImpl.cpp b/src/surf/HostImpl.cpp index 84e257ebac..f701211890 100644 --- a/src/surf/HostImpl.cpp +++ b/src/surf/HostImpl.cpp @@ -36,7 +36,7 @@ HostImpl::~HostImpl() { /* 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:"); + std::string msg = "Shutting down host, but it's not empty:"; for (auto const& actor : actor_list_) msg += "\n\t" + std::string(actor.get_name()); @@ -55,7 +55,7 @@ HostImpl::~HostImpl() * * Weird things will happen if you turn on a host that is already on. S4U is fool-proof, not this. */ -void HostImpl::turn_on() +void HostImpl::turn_on() const { for (auto const& arg : actors_at_boot_) { XBT_DEBUG("Booting Actor %s(%s) right now", arg->name.c_str(), arg->host->get_cname()); @@ -73,7 +73,7 @@ void HostImpl::turn_on() } /** Kill all actors hosted here */ -void HostImpl::turn_off(kernel::actor::ActorImpl* issuer) +void HostImpl::turn_off(const kernel::actor::ActorImpl* issuer) { for (auto& actor : actor_list_) { XBT_DEBUG("Killing Actor %s@%s on behalf of %s which turned off that host.", actor.get_cname(), @@ -95,15 +95,15 @@ std::vector HostImpl::get_all_actors() { std::vector res; for (auto& actor : actor_list_) - res.push_back(actor.ciface()); + res.emplace_back(actor.ciface()); return res; } -size_t HostImpl::get_actor_count() +size_t HostImpl::get_actor_count() const { return actor_list_.size(); } -std::vector HostImpl::get_disks() +std::vector HostImpl::get_disks() const { std::vector disks; for (auto const& d : disks_) @@ -111,6 +111,13 @@ std::vector HostImpl::get_disks() return disks; } +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() +{ + auto* mounts = new std::unordered_map(); + for (auto const& m : storage_) { + mounts->insert({m.first, m.second->get_iface()}); + } + return mounts; +} } // namespace surf } // namespace simgrid