X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/19e4a01d6e38e856dafa1a08942143a8ec7f5e34..9e359748f60e78caf841f3f81b069ef59c9bdcfe:/src/surf/StorageImpl.cpp diff --git a/src/surf/StorageImpl.cpp b/src/surf/StorageImpl.cpp index 9ce12e22e1..d15f28513f 100644 --- a/src/surf/StorageImpl.cpp +++ b/src/surf/StorageImpl.cpp @@ -1,10 +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 "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"); @@ -21,18 +23,8 @@ 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 * @@ -40,12 +32,11 @@ StorageImpl* StorageImpl::byName(std::string name) StorageModel::StorageModel() : Model() { - maxminSystem_ = lmm_system_new(true /* lazy update */); + set_maxmin_system(new simgrid::kernel::lmm::System(true /* selective update */)); } StorageModel::~StorageModel() { - lmm_system_free(maxminSystem_); surf_storage_model = nullptr; } @@ -53,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) - : Resource(model, name.c_str(), lmm_constraint_new(maxminSystem, this, std::max(bread, bwrite))) - , piface_(this) +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_(name, this) , typeId_(type_id) , content_name(content_name) , size_(size) @@ -64,9 +56,8 @@ StorageImpl::StorageImpl(Model* model, std::string name, lmm_system_t maxminSyst { StorageImpl::turnOn(); XBT_DEBUG("Create resource with Bread '%f' Bwrite '%f' and Size '%llu'", bread, bwrite, size); - constraintRead_ = lmm_constraint_new(maxminSystem, this, bread); - constraintWrite_ = lmm_constraint_new(maxminSystem, this, bwrite); - storages->insert({name, this}); + constraintRead_ = maxminSystem->constraint_new(this, bread); + constraintWrite_ = maxminSystem->constraint_new(this, bwrite); } StorageImpl::~StorageImpl() @@ -74,7 +65,6 @@ StorageImpl::~StorageImpl() storageDestructedCallbacks(this); } - bool StorageImpl::isUsed() { THROW_UNIMPLEMENTED; @@ -104,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); } }