-std::unordered_map<std::string, Storage*>* Storage::storages_ = new std::unordered_map<std::string, Storage*>();
+std::map<std::string, Storage*>* allStorages()
+{
+ std::unordered_map<std::string, surf::StorageImpl*>* map = surf::StorageImpl::storagesMap();
+ std::map<std::string, Storage*>* res = new std::map<std::string, Storage*>;
+ for (auto const& s : *map)
+ res->insert({s.first, &(s.second->piface_)}); // Convert each entry into its interface
+
+ return res;
+}
+
+Storage* Storage::byName(std::string name)
+{
+ surf::StorageImpl* res = surf::StorageImpl::byName(name);
+ if (res == nullptr)
+ return nullptr;
+ return &res->piface_;
+}
+
+const std::string& Storage::getName() const
+{
+ return pimpl_->getName();
+}