Skip to content
Snippets Groups Projects
Commit 6c14e7be authored by Alfred Burgess's avatar Alfred Burgess
Browse files

Made config parser follow a factory design pattern

parent ee69b21f
Branches
No related merge requests found
......@@ -14,17 +14,23 @@ typedef std::map<std::string,std::string> ConfigMap;
class ConfigParser
{
public:
ConfigParser();
static ConfigParser UserSettings();
~ConfigParser();
ConfigMap userSettings(){ return this->readFile( "settings.cfg" ); }
std::string toString() const;
private:
ConfigParser( std::string path );
const std::string CONFIG_DIRECTORY = "config";
const char DELIMINATOR = ':';
const char COMMENT_CHAR = '#';
Logger& _logger;
ConfigMap _config;
ConfigMap readFile( std::string path );
// void writeConfigFile( std::map settings );
......
......@@ -46,7 +46,7 @@ std::string Chunk::getRadiationString() const { return std::to_string(this->radi
std::string Chunk::getAgeString() const { return std::to_string(this->age); }
std::string Chunk::getString( ChunkQuery format ) const
{return "rest";}
{ return "rest"; }
void Chunk::visualise() const { std::cout << this->getString() << std::endl; }
std::string Chunk::getString() const
......
#include "config-parser.h"
std::ostream& operator<<( std::ostream& os, const ConfigMap& obj )
ConfigParser ConfigParser::UserSettings()
{
for( const auto& [ key, value ] : obj )
{
os << "[" << key.c_str() << "]" << value.c_str() << std::endl;
}
return os;
ConfigParser parser("settings.cfg");
return parser;
}
ConfigParser::ConfigParser()
: _logger( Logger::instance() )
std::string ConfigParser::toString() const
{
this->_logger.info( "Creating config parser" );
std::string str = "";
for( const auto [key, value] : this->_config )
{ str += "["+key+"] "+value+"\n"; }
return str;
}
std::ostream& operator<<( std::ostream& os, const ConfigParser& obj ) { return os << obj.toString(); }
ConfigParser::ConfigParser( std::string path )
: _logger( Logger::instance() )
{ this->_logger.info( "Creating config parser" ); }
ConfigParser::~ConfigParser()
{
this->_logger.info( "Closing config parser" );
}
{ this->_logger.info( "Closing config parser" ); }
ConfigMap ConfigParser::readFile( std::string path )
......@@ -49,6 +52,7 @@ ConfigMap ConfigParser::readFile( std::string path )
} else
{ this->_logger.error( "Unable to load specified configuration file:\n"+path ); }
this->_config = confMap;
return confMap;
}
......
......@@ -12,8 +12,8 @@ int main() {
SaveManager saveManager;
state = Initialise;
ConfigParser configParser;
ConfigMap userSettings = configParser.userSettings();
ConfigParser userSettings = ConfigParser::UserSettings();
EntityManager entityManager;
// Seed the random number generator
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment