+ double d_write;
+ try {
+ d_write = xbt_parse_get_bandwidth("", 0, write_bandwidth, "");
+ } catch (const simgrid::ParseError&) {
+ throw std::invalid_argument("Impossible to create disk: " + name + ". Invalid write bandwidth: " + write_bandwidth);
+ }
+ return create_disk(name, d_read, d_write);
+}
+
+void Host::add_disk(const Disk* disk)
+{
+ kernel::actor::simcall_answered([this, disk] { this->pimpl_->add_disk(disk); });
+}
+
+void Host::remove_disk(const std::string& disk_name)
+{
+ kernel::actor::simcall_answered([this, disk_name] { this->pimpl_->remove_disk(disk_name); });
+}
+
+VirtualMachine* Host::create_vm(const std::string& name, int core_amount)
+{
+ return kernel::actor::simcall_answered(
+ [this, &name, core_amount] { return this->pimpl_->create_vm(name, core_amount); });
+}
+
+VirtualMachine* Host::create_vm(const std::string& name, int core_amount, size_t ramsize)
+{
+ return kernel::actor::simcall_answered(
+ [this, &name, core_amount, ramsize] { return this->pimpl_->create_vm(name, core_amount, ramsize); });