-/* 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"
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 *
*********/
-StorageModel::StorageModel() : Model()
+StorageModel::StorageModel() : Model(Model::UpdateAlgo::Full)
{
- maxminSystem_ = new simgrid::kernel::lmm::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;
}
* 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)
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()
storageDestructedCallbacks(this);
}
-
-bool StorageImpl::isUsed()
+bool StorageImpl::is_used()
{
THROW_UNIMPLEMENTED;
return false;
/**********
* 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);
}
}