Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move the list of storages to the engine
[simgrid.git] / src / surf / StorageImpl.cpp
index 6b79856..a11e477 100644 (file)
@@ -1,11 +1,12 @@
-/* Copyright (c) 2013-2017. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2013-2018. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "StorageImpl.hpp"
-#include "surf/maxmin.hpp"
+#include "simgrid/s4u/Engine.hpp"
+#include "src/kernel/EngineImpl.hpp"
+#include "src/kernel/lmm/maxmin.hpp"
 #include "surf_private.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_storage, surf, "Logging specific to the SURF storage module");
@@ -22,18 +23,8 @@ namespace surf {
 simgrid::xbt::signal<void(StorageImpl*)> storageCreatedCallbacks;
 simgrid::xbt::signal<void(StorageImpl*)> storageDestructedCallbacks;
 simgrid::xbt::signal<void(StorageImpl*, int, int)> storageStateChangedCallbacks; // signature: wasOn, isOn
-simgrid::xbt::signal<void(StorageAction*, Action::State, Action::State)> storageActionStateChangedCallbacks;
-
-/* List of storages */
-std::unordered_map<std::string, StorageImpl*>* StorageImpl::storages =
-    new std::unordered_map<std::string, StorageImpl*>();
-
-StorageImpl* StorageImpl::byName(std::string name)
-{
-  if (storages->find(name) == storages->end())
-    return nullptr;
-  return storages->at(name);
-}
+simgrid::xbt::signal<void(StorageAction*, kernel::resource::Action::State, kernel::resource::Action::State)>
+    storageActionStateChangedCallbacks;
 
 /*********
  * Model *
@@ -41,12 +32,11 @@ StorageImpl* StorageImpl::byName(std::string name)
 
 StorageModel::StorageModel() : Model()
 {
-  maxminSystem_ = new s_lmm_system_t(true /* lazy update */);
+  maxminSystem_ = new simgrid::kernel::lmm::System(true /* lazy update */);
 }
 
 StorageModel::~StorageModel()
 {
-  delete maxminSystem_;
   surf_storage_model = nullptr;
 }
 
@@ -54,10 +44,11 @@ StorageModel::~StorageModel()
  * Resource *
  ************/
 
-StorageImpl::StorageImpl(Model* model, std::string name, lmm_system_t maxminSystem, double bread, double bwrite,
-                         std::string type_id, std::string content_name, sg_size_t size, std::string attach)
+StorageImpl::StorageImpl(kernel::resource::Model* model, std::string name, lmm_system_t maxminSystem, double bread,
+                         double bwrite, std::string type_id, std::string content_name, sg_size_t size,
+                         std::string attach)
     : Resource(model, name.c_str(), maxminSystem->constraint_new(this, std::max(bread, bwrite)))
-    , piface_(this)
+    , piface_(name, this)
     , typeId_(type_id)
     , content_name(content_name)
     , size_(size)
@@ -67,7 +58,6 @@ StorageImpl::StorageImpl(Model* model, std::string name, lmm_system_t maxminSyst
   XBT_DEBUG("Create resource with Bread '%f' Bwrite '%f' and Size '%llu'", bread, bwrite, size);
   constraintRead_  = maxminSystem->constraint_new(this, bread);
   constraintWrite_ = maxminSystem->constraint_new(this, bwrite);
-  storages->insert({name, this});
 }
 
 StorageImpl::~StorageImpl()
@@ -75,7 +65,6 @@ StorageImpl::~StorageImpl()
   storageDestructedCallbacks(this);
 }
 
-
 bool StorageImpl::isUsed()
 {
   THROW_UNIMPLEMENTED;