Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix comments.
[simgrid.git] / src / surf / StorageImpl.hpp
index 2b3e5c5..158e5e8 100644 (file)
@@ -46,9 +46,10 @@ public:
   StorageModel();
   StorageModel(const StorageModel&) = delete;
   StorageModel& operator=(const StorageModel&) = delete;
-  ~StorageModel();
+  ~StorageModel() override;
 
-  virtual StorageImpl* createStorage(const std::string& id, const std::string& type_id, const std::string& content_name,
+  virtual StorageImpl* createStorage(std::string& filename, int lineno, const std::string& id,
+                                     const std::string& type_id, const std::string& content_name,
                                      const std::string& attach) = 0;
 };
 
@@ -61,8 +62,18 @@ public:
  */
 class StorageImpl : public Resource, public xbt::PropertyHolder {
   s4u::Storage piface_;
+  lmm::Constraint* constraint_read_;  /* Constraint for maximum read bandwidth*/
+  lmm::Constraint* constraint_write_; /* Constraint for maximum write bandwidth*/
+
+  std::string typeId_;
+  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_;
 
 public:
+  const std::string content_name_; // Only used at parsing time then goes to the FileSystemExtension
+  const sg_size_t size_;           // Only used at parsing time then goes to the FileSystemExtension
   /** @brief Storage constructor */
   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);
@@ -71,9 +82,13 @@ public:
 
   ~StorageImpl() override;
 
+  const s4u::Storage* get_iface() const { return &piface_; }
   s4u::Storage* get_iface() { return &piface_; }
+  const char* get_type() const { return typeId_.c_str(); }
+  lmm::Constraint* get_read_constraint() const { return constraint_read_; }
+  lmm::Constraint* get_write_constraint() const { return constraint_write_; }
   /** @brief Check if the Storage is used (if an action currently uses its resources) */
-  bool is_used() override;
+  bool is_used() const override;
 
   void apply_event(profile::Event* event, double value) override;
 
@@ -98,19 +113,6 @@ public:
    */
   virtual StorageAction* write(sg_size_t size) = 0;
   const std::string& get_host() const { return attach_; }
-
-  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
-  sg_size_t size_;          // Only used at parsing time then goes to the FileSystemExtension
-
-private:
-  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_;
 };
 
 /**********