X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f863142ca1ffcf37908e0beb8dd4b71eb2a74c86..dd0a1723b46a215a7b8e1eff8ce77cc603e9d601:/src/surf/HostImpl.cpp diff --git a/src/surf/HostImpl.cpp b/src/surf/HostImpl.cpp index d8d97be06c..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. */ @@ -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