X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/325a6bb78259a0e6835f69ca6fc2341dc620418d..c0706f6e5a3d8d2034aa3ba75b6a3958d899d6a0:/include/simgrid/s4u/Disk.hpp diff --git a/include/simgrid/s4u/Disk.hpp b/include/simgrid/s4u/Disk.hpp index 771509594c..11651d3597 100644 --- a/include/simgrid/s4u/Disk.hpp +++ b/include/simgrid/s4u/Disk.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2019-2020. 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. */ @@ -17,6 +17,9 @@ #include namespace simgrid { + +extern template class XBT_PUBLIC xbt::Extendable; + namespace s4u { /** Disk represent the disk resources associated to a host @@ -26,36 +29,35 @@ namespace s4u { */ class XBT_PUBLIC Disk : public xbt::Extendable { + kernel::resource::DiskImpl* const pimpl_; + std::string name_; friend Engine; friend Io; friend kernel::resource::DiskImpl; -public: - explicit Disk(const std::string& name, kernel::resource::DiskImpl* pimpl) : pimpl_(pimpl), name_(name) {} - protected: virtual ~Disk() = default; public: - /** @brief Callback signal fired when a new Storage is created */ + explicit Disk(const std::string& name, kernel::resource::DiskImpl* pimpl) : pimpl_(pimpl), name_(name) {} + + /** @brief Callback signal fired when a new Disk is created */ static xbt::signal on_creation; - /** @brief Callback signal fired when a Storage is destroyed */ + /** @brief Callback signal fired when a Disk is destroyed */ static xbt::signal on_destruction; - /** @brief Callback signal fired when a Storage's state changes */ + /** @brief Callback signal fired when a Disk's state changes */ static xbt::signal on_state_change; - /** @brief Retrieves the name of that storage as a C++ string */ + /** @brief Retrieves the name of that disk as a C++ string */ std::string const& get_name() const { return name_; } - /** @brief Retrieves the name of that storage as a C string */ + /** @brief Retrieves the name of that disk as a C string */ const char* get_cname() const { return name_.c_str(); } - + double get_read_bandwidth() const; + double get_write_bandwidth() const; const std::unordered_map* get_properties() const; const char* get_property(const std::string& key) const; void set_property(const std::string&, const std::string& value); - Host* get_host(); - - void set_data(void* data) { userdata_ = data; } - void* get_data() { return userdata_; } + Host* get_host() const; IoPtr io_init(sg_size_t size, s4u::Io::OpType type); @@ -65,11 +67,6 @@ public: IoPtr write_async(sg_size_t size); sg_size_t write(sg_size_t size); kernel::resource::DiskImpl* get_impl() const { return pimpl_; } - -private: - kernel::resource::DiskImpl* const pimpl_; - std::string name_; - void* userdata_ = nullptr; }; } // namespace s4u