23#ifndef DATAFILEMANAGER_H
24#define DATAFILEMANAGER_H
29#include <unordered_map>
61 template<DerivedDataFileBase T>
62 T&
get(
const std::string& key)
66 throw std::invalid_argument(
"Key must not be empty.");
68 if (!m_files.contains(key))
70 m_files[key] = std::make_unique<T>(key, m_appName, m_isPortable);
72 return *
static_cast<T*
>(m_files[key].get());
76 std::string m_appName;
78 std::unordered_map<std::string, std::unique_ptr<DataFileBase>> m_files;
void operator=(DataFileManager &&)=delete
DataFileManager(const std::string &appName, bool isPortable)
Constructs a DataFileManager.
DataFileManager(DataFileManager &&)=delete
DataFileManager(const DataFileManager &)=delete
T & get(const std::string &key)
Gets a data object.
Definition datafilemanager.h:62
void operator=(const DataFileManager &)=delete
Definition datafilemanager.h:35