From: Frederic Suter Date: Fri, 3 Aug 2018 22:48:53 +0000 (+0200) Subject: try to please clang X-Git-Tag: v3_21~301 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/9fa0e6bf860ab0a45cb0fde9093bc01442f3698b?hp=50ddfe2f5b5035e0ed9556b334d6977ee81ff83a try to please clang --- diff --git a/include/simgrid/s4u/Io.hpp b/include/simgrid/s4u/Io.hpp index 6052171851..360dd4fd87 100644 --- a/include/simgrid/s4u/Io.hpp +++ b/include/simgrid/s4u/Io.hpp @@ -15,13 +15,16 @@ namespace simgrid { namespace s4u { class XBT_PUBLIC Io : public Activity { - explicit Io(sg_size_t size) : Activity(), size_(size) {} +public: + enum class OpType { READ, WRITE }; + +private: + explicit Io(sg_size_t size, OpType type) : Activity(), size_(size), type_(type) {} public: friend XBT_PUBLIC void intrusive_ptr_release(simgrid::s4u::Io* i); friend XBT_PUBLIC void intrusive_ptr_add_ref(simgrid::s4u::Io* i); friend Storage; // Factory of IOs - enum class OpType { READ, WRITE }; ~Io() = default; Activity* start() override; @@ -31,7 +34,6 @@ public: double get_remaining() override; sg_size_t get_performed_ioops(); - IoPtr set_io_type(OpType type); private: sg_size_t size_ = 0; diff --git a/include/simgrid/s4u/Storage.hpp b/include/simgrid/s4u/Storage.hpp index 1b1bb5dac2..956a664e6d 100644 --- a/include/simgrid/s4u/Storage.hpp +++ b/include/simgrid/s4u/Storage.hpp @@ -7,6 +7,7 @@ #define INCLUDE_SIMGRID_S4U_STORAGE_HPP_ #include +#include #include #include #include @@ -62,7 +63,7 @@ public: void set_data(void* data) { userdata_ = data; } void* get_data() { return userdata_; } - IoPtr io_init(sg_size_t size); + IoPtr io_init(sg_size_t size, s4u::Io::OpType type); sg_size_t read(sg_size_t size); sg_size_t write(sg_size_t size); diff --git a/src/s4u/s4u_Io.cpp b/src/s4u/s4u_Io.cpp index 88d78a7040..65421f45be 100644 --- a/src/s4u/s4u_Io.cpp +++ b/src/s4u/s4u_Io.cpp @@ -8,6 +8,7 @@ #include "src/kernel/activity/IoImpl.hpp" #include "src/simix/smx_io_private.hpp" #include "xbt/log.h" +#include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_io, s4u_activity, "S4U asynchronous IOs"); @@ -16,8 +17,10 @@ namespace s4u { Activity* Io::start() { - set_remaining(size_); - pimpl_ = simix::simcall([this] { return SIMIX_io_start(name_, size_, storage_, type_); }); + Activity::set_remaining(size_); + pimpl_ = simix::simcall([this] { + return boost::static_pointer_cast(SIMIX_io_start(name_, size_, storage_, type_)); + }); state_ = State::STARTED; return this; } @@ -55,13 +58,6 @@ sg_size_t Io::get_performed_ioops() [this]() { return boost::static_pointer_cast(pimpl_)->get_performed_ioops(); }); } -IoPtr Io::set_io_type(OpType type) -{ - xbt_assert(state_ == State::INITED, "Cannot change the name of an exec after its start"); - type_ = type; - return this; -} - void intrusive_ptr_release(simgrid::s4u::Io* i) { if (i->refcount_.fetch_sub(1, std::memory_order_release) == 1) { diff --git a/src/s4u/s4u_Storage.cpp b/src/s4u/s4u_Storage.cpp index d1b2aa5597..aba158e313 100644 --- a/src/s4u/s4u_Storage.cpp +++ b/src/s4u/s4u_Storage.cpp @@ -56,25 +56,23 @@ void Storage::set_property(std::string key, std::string value) simgrid::simix::simcall([this, key, value] { this->pimpl_->set_property(key, value); }); } -IoPtr Storage::io_init(sg_size_t size) +IoPtr Storage::io_init(sg_size_t size, Io::OpType type) { - IoPtr res = IoPtr(new Io(size)); + IoPtr res = IoPtr(new Io(size, type)); res->storage_ = this; return res; } sg_size_t Storage::read(sg_size_t size) { - IoPtr i = io_init(size); - i->set_io_type(Io::OpType::READ); + IoPtr i = io_init(size, Io::OpType::READ); i->start()->wait(); return i->get_performed_ioops(); } sg_size_t Storage::write(sg_size_t size) { - IoPtr i = io_init(size); - i->set_io_type(Io::OpType::WRITE); + IoPtr i = io_init(size, Io::OpType::WRITE); i->start()->wait(); return i->get_performed_ioops(); }