#include "simgrid/kernel/resource/Resource.hpp"
#include "simgrid/s4u/Io.hpp"
#include "simgrid/s4u/Storage.hpp"
-#include "src/kernel/resource/profile/trace_mgr.hpp"
#include "src/surf/PropertyHolder.hpp"
#include "surf_interface.hpp"
* @details A Storage represent a storage unit (e.g.: hard drive, usb key)
*/
class StorageImpl : public Resource, public surf::PropertyHolder {
+ s4u::Storage piface_;
+
public:
/** @brief Storage constructor */
StorageImpl(Model* model, const std::string& name, kernel::lmm::System* maxmin_system, double bread, double bwrite,
~StorageImpl() override;
- /** @brief Public interface */
- s4u::Storage piface_;
-
+ s4u::Storage* get_iface() { return &piface_; }
/** @brief Check if the Storage is used (if an action currently uses its resources) */
bool is_used() override;
void turn_off() override;
void destroy(); // Must be called instead of the destructor
- virtual Action* io_start(sg_size_t size, s4u::Io::OpType type) = 0;
+ virtual StorageAction* io_start(sg_size_t size, s4u::Io::OpType type) = 0;
/**
* @brief Read a file
*
* @return The StorageAction corresponding to the writing
*/
virtual StorageAction* write(sg_size_t size) = 0;
- virtual std::string getHost() { return attach_; }
+ const std::string& get_host() const { return attach_; }
- lmm::Constraint* constraintWrite_; /* Constraint for maximum write bandwidth*/
- lmm::Constraint* constraintRead_; /* Constraint for maximum write bandwidth*/
+ lmm::Constraint* constraint_write_; /* Constraint for maximum write bandwidth*/
+ lmm::Constraint* constraint_read_; /* Constraint for maximum write bandwidth*/
std::string typeId_;
- std::string content_name; // Only used at parsing time then goes to the FileSystemExtension
+ std::string content_name_; // Only used at parsing time then goes to the FileSystemExtension
sg_size_t size_; // Only used at parsing time then goes to the FileSystemExtension
private:
- bool currentlyDestroying_ = false;
+ bool currently_destroying_ = false;
// Name of the host to which this storage is attached. Only used at platform parsing time, then the interface stores
// the Host directly.
std::string attach_;