parent
99d677913a
commit
758b4b5dfb
@ -1,35 +0,0 @@
|
|||||||
#include "configmanager.h"
|
|
||||||
#include "resourcemanager.h"
|
|
||||||
|
|
||||||
#include <framework/otml/otml.h>
|
|
||||||
|
|
||||||
ConfigManager g_configs;
|
|
||||||
|
|
||||||
bool ConfigManager::load(const std::string& fileName)
|
|
||||||
{
|
|
||||||
m_fileName = fileName;
|
|
||||||
|
|
||||||
if(!g_resources.fileExists(fileName))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
try {
|
|
||||||
OTMLDocumentPtr doc = OTMLDocument::parse(fileName);
|
|
||||||
for(const OTMLNodePtr& child : doc->childNodes())
|
|
||||||
m_confsMap[child->tag()] = child->value();
|
|
||||||
} catch(std::exception& e) {
|
|
||||||
logError("ERROR: could not load configurations: ", e.what());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ConfigManager::save()
|
|
||||||
{
|
|
||||||
if(!m_fileName.empty()) {
|
|
||||||
OTMLDocumentPtr doc = OTMLDocument::create();
|
|
||||||
doc->write(m_confsMap);
|
|
||||||
return doc->save(m_fileName);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
#ifndef CONFIGMANAGER_H
|
|
||||||
#define CONFIGMANAGER_H
|
|
||||||
|
|
||||||
#include "declarations.h"
|
|
||||||
|
|
||||||
struct ConfigValueProxy {
|
|
||||||
ConfigValueProxy(const std::string& v) : value(v) { }
|
|
||||||
operator std::string() const { return fw::unsafe_cast<std::string>(value); }
|
|
||||||
operator float() const { return fw::unsafe_cast<float>(value); }
|
|
||||||
operator int() const { return fw::unsafe_cast<int>(value); }
|
|
||||||
operator bool() const { return fw::unsafe_cast<bool>(value); }
|
|
||||||
std::string value;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ConfigManager
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
bool load(const std::string& fileName);
|
|
||||||
bool save();
|
|
||||||
|
|
||||||
template<class T>
|
|
||||||
void set(const std::string& key, const T& value) { m_confsMap[key] = fw::unsafe_cast<std::string>(value); }
|
|
||||||
|
|
||||||
ConfigValueProxy get(const std::string& key) { return ConfigValueProxy(m_confsMap[key]); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::string m_fileName;
|
|
||||||
std::map<std::string, std::string> m_confsMap;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern ConfigManager g_configs;
|
|
||||||
|
|
||||||
#endif
|
|
Loading…
Reference in new issue