#include "simgrid/storage.h"
#include "src/surf/StorageImpl.hpp"
-#include <string>
-#include <unordered_map>
-
namespace simgrid {
namespace xbt {
template class Extendable<simgrid::s4u::Storage>;
namespace s4u {
-void getStorageList(std::map<std::string, Storage*>* whereTo)
-{
- for (auto const& s : simgrid::s4u::Engine::get_instance()->get_all_storages())
- whereTo->insert({s->get_name(), s});
-}
+simgrid::xbt::signal<void(s4u::Storage&)> Storage::on_creation;
+simgrid::xbt::signal<void(s4u::Storage&)> Storage::on_destruction;
+simgrid::xbt::signal<void(s4u::Storage&)> Storage::on_state_change;
Storage::Storage(std::string name, surf::StorageImpl* pimpl) : pimpl_(pimpl), name_(name)
{
Storage* Storage::by_name(std::string name)
{
- return Engine::get_instance()->storage_by_name_or_null(name);
-}
-
-const std::string& Storage::get_name() const
-{
- return name_;
+ return Engine::get_instance()->storage_by_name(name);
}
-const char* Storage::get_cname() const
+Storage* Storage::by_name_or_null(std::string name)
{
- return name_.c_str();
+ return Engine::get_instance()->storage_by_name_or_null(name);
}
const char* Storage::get_type()
return pimpl_->typeId_.c_str();
}
-std::map<std::string, std::string>* Storage::getProperties()
+std::unordered_map<std::string, std::string>* Storage::get_properties()
{
return simgrid::simix::simcall([this] { return pimpl_->get_properties(); });
}
return simcall_storage_write(pimpl_, size);
}
-/*************
- * Callbacks *
- *************/
-simgrid::xbt::signal<void(s4u::Storage&)> Storage::on_creation;
-simgrid::xbt::signal<void(s4u::Storage&)> Storage::on_destruction;
-simgrid::xbt::signal<void(s4u::Storage&)> Storage::on_state_change;
+// Deprecated functions
+void getStorageList(std::map<std::string, Storage*>* whereTo)
+{
+ for (auto const& s : simgrid::s4u::Engine::get_instance()->get_all_storages())
+ whereTo->insert({s->get_name(), s});
+}
} /* namespace s4u */
} /* namespace simgrid */
{
xbt_assert((storage != nullptr), "Invalid parameters (storage is nullptr)");
xbt_dict_t as_dict = xbt_dict_new_homogeneous(xbt_free_f);
- std::map<std::string, std::string>* props = storage->getProperties();
+ std::unordered_map<std::string, std::string>* props = storage->get_properties();
if (props == nullptr)
return nullptr;
for (auto const& elm : *props) {