rex/src/loaders/Conf.cpp

37 lines
979 B
C++
Raw Normal View History

2017-04-22 12:07:11 +00:00
#include "Conf.h"
class CONF_PLANPATH_INVALID: public std::runtime_error
{
public:
CONF_PLANPATH_INVALID(): std::runtime_error("conf: The supplied path for the plan definition file is invalid.") {}
};
class CONF_UNITSPATH_INVALID: public std::runtime_error
{
public:
CONF_UNITSPATH_INVALID(): std::runtime_error("conf: The supplied path for the unit definition file is invalid.") {}
};
Conf::Conf( std::string filename ): JSON_Loader()
2017-04-22 12:07:11 +00:00
{
// load the conf file.
this->load_json_file( filename, true );
// find the path to the plan file
2017-06-11 19:21:56 +00:00
if ( this->get_key( this->plan_path, "plan_path", true) != 0 ) { throw CONF_PLANPATH_INVALID(); }
2017-06-09 04:46:05 +00:00
// find the path to the unit definitions file
2017-06-11 19:21:56 +00:00
if ( this->get_key( this->units_path, "units_path", true) != 0 ) { throw CONF_UNITSPATH_INVALID(); }
2017-04-22 12:07:11 +00:00
};
std::string Conf::get_plan_path()
{
2017-06-09 04:46:05 +00:00
return this->plan_path.asString();
2017-04-22 12:07:11 +00:00
}
std::string Conf::get_units_path()
{
2017-06-09 04:46:05 +00:00
return this->units_path.asString();
2017-04-22 12:07:11 +00:00
}