X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b5f9e42977485f8fb5f5818e45182bc7f6feaba9..202633c49422515a830e56267451da47a0e0e619:/include/simgrid/s4u/Disk.hpp diff --git a/include/simgrid/s4u/Disk.hpp b/include/simgrid/s4u/Disk.hpp index 323f40ea7e..aac0f6b29a 100644 --- a/include/simgrid/s4u/Disk.hpp +++ b/include/simgrid/s4u/Disk.hpp @@ -30,34 +30,24 @@ 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; -protected: -#ifndef DOXYGEN + explicit Disk(kernel::resource::DiskImpl* pimpl) : pimpl_(pimpl) {} virtual ~Disk() = default; -#endif + + // The private implementation, that never changes + kernel::resource::DiskImpl* const pimpl_; public: #ifndef DOXYGEN - explicit Disk(const std::string& name, kernel::resource::DiskImpl* pimpl) : pimpl_(pimpl), name_(name) {} + kernel::resource::DiskImpl* get_impl() const { return pimpl_; } #endif - /** @brief Callback signal fired when a new Disk is created */ - static xbt::signal on_creation; - /** @brief Callback signal fired when a Disk is destroyed */ - static xbt::signal on_destruction; - /** @brief Callback signal fired when a Disk's state changes */ - static xbt::signal on_state_change; - - /** @brief Retrieves the name of that disk as a C++ string */ - Disk* set_name(std::string const& name); - std::string const& get_name() const { return name_; } + std::string const& get_name() const; /** @brief Retrieves the name of that disk as a C string */ - const char* get_cname() const { return name_.c_str(); } + const char* get_cname() const; Disk* set_read_bandwidth(double read_bw); double get_read_bandwidth() const; @@ -69,6 +59,7 @@ public: const char* get_property(const std::string& key) const; Disk* set_property(const std::string&, const std::string& value); Disk* set_properties(const std::unordered_map& properties); + Disk* set_host(Host* host); Host* get_host() const; @@ -79,11 +70,16 @@ public: IoPtr write_async(sg_size_t size) const; sg_size_t write(sg_size_t size) const; + Disk* seal(); -#ifndef DOXYGEN - kernel::resource::DiskImpl* get_impl() const { return pimpl_; } -#endif + /* The signals */ + /** @brief Callback signal fired when a new Disk is created */ + static xbt::signal on_creation; + /** @brief Callback signal fired when a Disk is destroyed */ + static xbt::signal on_destruction; + /** @brief Callback signal fired when a Disk's state changes */ + static xbt::signal on_state_change; }; } // namespace s4u