X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ea10e88fd41a11386d9e3868d72ab8cb933a4292..7f7bec8b9fddb6ada2c29a49920d01538cab744f:/src/kernel/resource/DiskImpl.hpp diff --git a/src/kernel/resource/DiskImpl.hpp b/src/kernel/resource/DiskImpl.hpp index af027a7503..15a1d6d207 100644 --- a/src/kernel/resource/DiskImpl.hpp +++ b/src/kernel/resource/DiskImpl.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2019-2022. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2019-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. */ @@ -20,9 +20,7 @@ * Model * *********/ -namespace simgrid { -namespace kernel { -namespace resource { +namespace simgrid::kernel::resource { /*********** * Classes * ***********/ @@ -34,13 +32,9 @@ class DiskAction; *********/ class DiskModel : public Model { public: - explicit DiskModel(const std::string& name); - DiskModel(const DiskModel&) = delete; - DiskModel& operator=(const DiskModel&) = delete; + using Model::Model; virtual DiskImpl* create_disk(const std::string& name, double read_bandwidth, double write_bandwidth) = 0; - - virtual DiskAction* io_start(const DiskImpl* disk, sg_size_t size, s4u::Io::OpType type) = 0; }; /************ @@ -78,13 +72,13 @@ public: DiskImpl* set_host(s4u::Host* host); s4u::Host* get_host() const { return host_; } - virtual void set_read_bandwidth(double value) { read_bw_.peak = value; } + void set_read_bandwidth(double value); double get_read_bandwidth() const { return read_bw_.peak * read_bw_.scale; } - virtual void set_write_bandwidth(double value) { write_bw_.peak = value; } + void set_write_bandwidth(double value); double get_write_bandwidth() const { return write_bw_.peak * write_bw_.scale; } - virtual void set_readwrite_bandwidth(double value) { readwrite_bw_ = value; } + void set_readwrite_bandwidth(double value); double get_readwrite_bandwidth() const { return readwrite_bw_; } DiskImpl* set_read_constraint(lmm::Constraint* constraint_read); @@ -113,6 +107,8 @@ public: void seal() override; void destroy(); // Must be called instead of the destructor + + virtual DiskAction* io_start(sg_size_t size, s4u::Io::OpType type) = 0; }; /********** @@ -125,9 +121,8 @@ public: using Action::Action; void set_state(simgrid::kernel::resource::Action::State state) override; + void update_remains_lazy(double now) override; }; -} // namespace resource -} // namespace kernel -} // namespace simgrid +} // namespace simgrid::kernel::resource #endif /* DISK_IMPL_HPP_ */