X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7672ae43c2b49a7dcdc0976cc89a05cc87ae534c..0ad1735398ac1fdf4bba35e012ad974665389d33:/src/s4u/s4u_Io.cpp diff --git a/src/s4u/s4u_Io.cpp b/src/s4u/s4u_Io.cpp index a463ce13f5..191abc17ad 100644 --- a/src/s4u/s4u_Io.cpp +++ b/src/s4u/s4u_Io.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2018-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2018-2023. 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. */ @@ -27,24 +27,25 @@ IoPtr Io::init() return IoPtr(static_cast(pimpl->get_iface())); } -IoPtr Io::streamto_init(Host* from, Disk* from_disk, Host* to, Disk* to_disk) +IoPtr Io::streamto_init(Host* from, const Disk* from_disk, Host* to, const Disk* to_disk) { auto res = Io::init()->set_source(from, from_disk)->set_destination(to, to_disk); res->set_state(State::STARTING); return res; } -IoPtr Io::streamto_async(Host* from, Disk* from_disk, Host* to, Disk* to_disk, uint64_t simulated_size_in_bytes) +IoPtr Io::streamto_async(Host* from, const Disk* from_disk, Host* to, const Disk* to_disk, + uint64_t simulated_size_in_bytes) { return Io::init()->set_size(simulated_size_in_bytes)->set_source(from, from_disk)->set_destination(to, to_disk); } -void Io::streamto(Host* from, Disk* from_disk, Host* to, Disk* to_disk, uint64_t simulated_size_in_bytes) +void Io::streamto(Host* from, const Disk* from_disk, Host* to, const Disk* to_disk, uint64_t simulated_size_in_bytes) { streamto_async(from, from_disk, to, to_disk, simulated_size_in_bytes)->wait(); } -IoPtr Io::set_source(Host* from, Disk* from_disk) +IoPtr Io::set_source(Host* from, const Disk* from_disk) { xbt_assert(state_ == State::INITED || state_ == State::STARTING, "Cannot change the source of an IO stream once it's started (state: %s)", to_c_str(state_)); @@ -57,12 +58,12 @@ IoPtr Io::set_source(Host* from, Disk* from_disk) if (state_ == State::STARTING && remains_ <= 0) XBT_DEBUG("This IO has a size of 0 byte. It cannot start yet"); else - vetoable_start(); + start(); return this; } -IoPtr Io::set_destination(Host* to, Disk* to_disk) +IoPtr Io::set_destination(Host* to, const Disk* to_disk) { xbt_assert(state_ == State::INITED || state_ == State::STARTING, "Cannot change the source of an IO stream once it's started (state: %s)", to_c_str(state_)); @@ -75,12 +76,12 @@ IoPtr Io::set_destination(Host* to, Disk* to_disk) if (state_ == State::STARTING && remains_ <= 0) XBT_DEBUG("This IO has a size of 0 byte. It cannot start yet"); else - vetoable_start(); + start(); return this; } -Io* Io::start() +Io* Io::do_start() { kernel::actor::simcall_answered( [this] { (*boost::static_pointer_cast(pimpl_)).set_name(get_name()).start(); }); @@ -110,7 +111,7 @@ IoPtr Io::set_disk(const_sg_disk_t disk) // Setting the disk may allow to start the activity, let's try if (state_ == State::STARTING) - vetoable_start(); + start(); return this; }