This commit is contained in:
Eduardo Bart 2011-08-16 10:06:16 -03:00
parent e51c29702c
commit be21321393
3 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,35 @@
#include "configs.h"
#include "resourcemanager.h"
#include <framework/otml/otml.h>
Configs g_configs;
bool Configs::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 Configs::save()
{
if(!m_fileName.empty()) {
OTMLDocumentPtr doc = OTMLDocument::create();
doc->write(m_confsMap);
return doc->save(m_fileName);
}
return false;
}

View File

@ -0,0 +1,22 @@
#ifndef CONFIGMANAGER_H
#define CONFIGMANAGER_H
#include "declarations.h"
class Configs
{
public:
bool load(const std::string& fileName);
bool save();
void set(const std::string& key, const std::string& value) { m_confsMap[key] = value; }
std::string get(const std::string& key) { return m_confsMap[key]; }
private:
std::string m_fileName;
std::map<std::string, std::string> m_confsMap;
};
extern Configs g_configs;
#endif

Binary file not shown.