Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
s4u::Exec now has 2 child classes
[simgrid.git] / src / surf / StorageImpl.hpp
index 182b9e2..e3c508a 100644 (file)
@@ -8,8 +8,8 @@
 #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 "src/surf/trace_mgr.hpp"
 #include "surf_interface.hpp"
 
 #include <map>
@@ -51,6 +51,8 @@ simgrid::xbt::signal<void(StorageAction*, kernel::resource::Action::State, kerne
 class StorageModel : public kernel::resource::Model {
 public:
   StorageModel();
+  StorageModel(const StorageModel&) = delete;
+  StorageModel& operator=(const StorageModel&) = delete;
   ~StorageModel();
 
   virtual StorageImpl* createStorage(std::string id, std::string type_id, std::string content_name,
@@ -67,8 +69,10 @@ public:
 class StorageImpl : public kernel::resource::Resource, public PropertyHolder {
 public:
   /** @brief Storage constructor */
-  StorageImpl(kernel::resource::Model* model, std::string name, kernel::lmm::System* maxmin_system, double bread,
+  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(const StorageImpl&) = delete;
+  StorageImpl& operator=(const StorageImpl&) = delete;
 
   ~StorageImpl() override;
 
@@ -171,7 +175,12 @@ public:
   StorageType(std::string id, std::string model, 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(id), model(model), content(content), properties(properties), model_properties(model_properties), size(size)
+      : id(std::move(id))
+      , model(std::move(model))
+      , content(std::move(content))
+      , properties(properties)
+      , model_properties(model_properties)
+      , size(size)
   {
   }
 };