X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7bc340a73928fe73a57a9664aeba0cf5a92b654c..8372ae97612f27b84e8d75aeeed9de0ba6d2ba6a:/src/surf/StorageImpl.cpp diff --git a/src/surf/StorageImpl.cpp b/src/surf/StorageImpl.cpp index 6b79856682..2916346406 100644 --- a/src/surf/StorageImpl.cpp +++ b/src/surf/StorageImpl.cpp @@ -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,31 +23,20 @@ namespace surf { simgrid::xbt::signal storageCreatedCallbacks; simgrid::xbt::signal storageDestructedCallbacks; simgrid::xbt::signal storageStateChangedCallbacks; // signature: wasOn, isOn -simgrid::xbt::signal storageActionStateChangedCallbacks; - -/* List of storages */ -std::unordered_map* StorageImpl::storages = - new std::unordered_map(); - -StorageImpl* StorageImpl::byName(std::string name) -{ - if (storages->find(name) == storages->end()) - return nullptr; - return storages->at(name); -} +simgrid::xbt::signal + storageActionStateChangedCallbacks; /********* * Model * *********/ -StorageModel::StorageModel() : Model() +StorageModel::StorageModel() : Model(Model::UpdateAlgo::Full) { - maxminSystem_ = new s_lmm_system_t(true /* lazy update */); + set_maxmin_system(new simgrid::kernel::lmm::System(true /* selective 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, kernel::lmm::System* 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,8 +65,7 @@ StorageImpl::~StorageImpl() storageDestructedCallbacks(this); } - -bool StorageImpl::isUsed() +bool StorageImpl::is_used() { THROW_UNIMPLEMENTED; return false; @@ -105,10 +94,10 @@ void StorageImpl::turnOff() /********** * Action * **********/ -void StorageAction::setState(Action::State state) +void StorageAction::set_state(Action::State state) { - Action::State old = getState(); - Action::setState(state); + Action::State old = get_state(); + Action::set_state(state); storageActionStateChangedCallbacks(this, old, state); } }