X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3b7e5f4b4d7c87ee3e8827313ec966ea8fc8387..222e031aa69b85a660b37e558115375d44ec3f68:/include/simgrid/s4u/Io.hpp diff --git a/include/simgrid/s4u/Io.hpp b/include/simgrid/s4u/Io.hpp index e979fb52e5..a4423ba8d1 100644 --- a/include/simgrid/s4u/Io.hpp +++ b/include/simgrid/s4u/Io.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2017-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2017-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. */ @@ -24,22 +24,21 @@ public: enum class OpType { READ, WRITE }; private: - Storage* storage_ = nullptr; Disk* disk_ = nullptr; sg_size_t size_ = 0; OpType type_ = OpType::READ; - explicit Io(sg_storage_t storage, sg_size_t size, OpType type); - explicit Io(sg_disk_t disk, sg_size_t size, OpType type); + Io(); public: #ifndef DOXYGEN friend Disk; // Factory of IOs - friend Storage; // Factory of IOs #endif - ~Io() override = default; + static xbt::signal on_start; + static xbt::signal on_completion; + static IoPtr init(); Io* start() override; Io* wait() override; Io* wait_for(double timeout) override; @@ -47,6 +46,11 @@ public: double get_remaining() const override; sg_size_t get_performed_ioops() const; + IoPtr set_disk(sg_disk_t disk); + IoPtr set_size(sg_size_t size); + IoPtr set_op_type(OpType type); + + bool is_assigned() const override { return disk_ != nullptr; } }; } // namespace s4u