-/* Copyright (c) 2013-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2013-2021. 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. */
{
/* 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());
*
* 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());
}
/** 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(),
{
std::vector<s4u::ActorPtr> res;
for (auto& actor : actor_list_)
- res.push_back(actor.ciface());
+ res.emplace_back(actor.get_ciface());
return res;
}
-size_t HostImpl::get_actor_count()
+size_t HostImpl::get_actor_count() const
{
return actor_list_.size();
}
-std::vector<s4u::Disk*> HostImpl::get_disks()
+std::vector<s4u::Disk*> HostImpl::get_disks() const
{
std::vector<s4u::Disk*> disks;
for (auto const& d : disks_)
return disks;
}
+void HostImpl::set_disks(const std::vector<kernel::resource::DiskImpl*>& disks, s4u::Host* host)
+{
+ disks_ = disks;
+ for (auto d : disks_)
+ d->set_host(host);
+}
+
void HostImpl::add_disk(const s4u::Disk* disk)
{
disks_.push_back(disk->get_impl());
storages.push_back(s.second->get_iface()->get_cname());
return storages;
}
-
+std::unordered_map<std::string, s4u::Storage*>* HostImpl::get_mounted_storages()
+{
+ auto* mounts = new std::unordered_map<std::string, s4u::Storage*>();
+ for (auto const& m : storage_) {
+ mounts->insert({m.first, m.second->get_iface()});
+ }
+ return mounts;
+}
} // namespace surf
} // namespace simgrid