#ifndef STORAGE_INTERFACE_HPP_
#define STORAGE_INTERFACE_HPP_
-namespace simgrid {
-namespace surf {
+/*********
+ * Model *
+ *********/
+
+XBT_PUBLIC_DATA simgrid::kernel::resource::StorageModel* surf_storage_model;
+namespace simgrid {
+namespace kernel {
+namespace resource {
/***********
* Classes *
***********/
StorageModel& operator=(const StorageModel&) = delete;
~StorageModel();
- virtual StorageImpl* createStorage(std::string id, std::string type_id, std::string content_name,
- std::string attach) = 0;
+ virtual StorageImpl* createStorage(const std::string& id, const std::string& type_id, const std::string& content_name,
+ const std::string& attach) = 0;
};
/************
* @brief SURF storage interface class
* @details A Storage represent a storage unit (e.g.: hard drive, usb key)
*/
-class StorageImpl : public kernel::resource::Resource, public PropertyHolder {
+class StorageImpl : public Resource, public surf::PropertyHolder {
public:
/** @brief Storage constructor */
- StorageImpl(kernel::resource::Model* model, const std::string& name, kernel::lmm::System* maxmin_system, double bread,
- double bwrite, std::string type_id, std::string content_name, sg_size_t size, std::string attach);
+ StorageImpl(Model* model, const std::string& name, kernel::lmm::System* maxmin_system, double bread, double bwrite,
+ const std::string& type_id, const std::string& content_name, sg_size_t size, const std::string& attach);
StorageImpl(const StorageImpl&) = delete;
StorageImpl& operator=(const StorageImpl&) = delete;
/** @brief Check if the Storage is used (if an action currently uses its resources) */
bool is_used() override;
- void apply_event(simgrid::kernel::profile::Event* event, double value) override;
+ void apply_event(profile::Event* event, double value) override;
void turn_on() override;
void turn_off() override;
void destroy(); // Must be called instead of the destructor
- virtual simgrid::kernel::resource::Action* io_start(sg_size_t size, s4u::Io::OpType type) = 0;
+ virtual Action* io_start(sg_size_t size, s4u::Io::OpType type) = 0;
/**
* @brief Read a file
*
virtual StorageAction* write(sg_size_t size) = 0;
virtual std::string getHost() { return attach_; }
- kernel::lmm::Constraint* constraintWrite_; /* Constraint for maximum write bandwidth*/
- kernel::lmm::Constraint* constraintRead_; /* Constraint for maximum write bandwidth*/
+ lmm::Constraint* constraintWrite_; /* Constraint for maximum write bandwidth*/
+ lmm::Constraint* constraintRead_; /* Constraint for maximum write bandwidth*/
std::string typeId_;
std::string content_name; // Only used at parsing time then goes to the FileSystemExtension
/** @ingroup SURF_storage_interface
* @brief SURF storage action interface class
*/
-class StorageAction : public kernel::resource::Action {
+class StorageAction : public Action {
public:
- static xbt::signal<void(StorageAction*, kernel::resource::Action::State, kernel::resource::Action::State)>
- on_state_change;
+ static xbt::signal<void(StorageAction*, Action::State, Action::State)> on_state_change;
/**
* @brief StorageAction constructor
* @param storage The Storage associated to this StorageAction
* @param type [description]
*/
- StorageAction(kernel::resource::Model* model, double cost, bool failed, StorageImpl* storage, s4u::Io::OpType type)
+ StorageAction(Model* model, double cost, bool failed, StorageImpl* storage, s4u::Io::OpType type)
: Action(model, cost, failed), type_(type), storage_(storage){};
/**
std::unordered_map<std::string, std::string>* properties;
std::unordered_map<std::string, std::string>* model_properties;
sg_size_t size;
- StorageType(std::string id, std::string model, std::string content,
+ StorageType(const std::string& id, const std::string& model, const std::string& content,
std::unordered_map<std::string, std::string>* properties,
std::unordered_map<std::string, std::string>* model_properties, sg_size_t size)
- : id(std::move(id))
- , model(std::move(model))
- , content(std::move(content))
- , properties(properties)
- , model_properties(model_properties)
- , size(size)
+ : id(id), model(model), content(content), properties(properties), model_properties(model_properties), size(size)
{
}
};
-}
-}
+} // namespace resource
+} // namespace kernel
+} // namespace simgrid
#endif /* STORAGE_INTERFACE_HPP_ */