bool Config::save(const char * configFilePath)
{
- return false;
+ if(!config_write_file(&cfg, configFilePath)) {
+ fprintf(stderr,
+ "Error: Cannot save configuration file: %s!\n",
+ configFilePath
+ );
+ return false;
+ }
+
+ return true;
}
int Config::getNodeNumber()
}
void Config::setNodeNumber(int nodeNumber)
{
+ config_setting_t *setting;
+ config_setting_t *root = config_root_setting(&cfg);
+
+ setting = config_setting_get_member(root, "node_number");
+
+ if(!setting) {
+ setting = config_setting_add(
+ root,
+ "node_number",
+ CONFIG_TYPE_INT
+ );
+ }
+ config_setting_set_int(setting, nodeNumber);
}
std::vector<std::string> Config::getHosts()
return hosts;
}
+void Config::setHosts(std::vector<std::string> hosts)
+{
+ config_setting_t *root = config_root_setting(&cfg);
+ config_setting_t *setting = NULL;
+
+ setting = config_setting_add(root, "host", CONFIG_TYPE_ARRAY);
+
+ for (auto host : hosts) {
+ config_setting_set_string(
+ config_setting_add(setting, NULL, CONFIG_TYPE_STRING),
+ host.c_str()
+ );
+ }
+}
+
ConnectionType Config::getConnectionType()
{
config_setting_t *setting = config_lookup(&cfg, "type");
}
void Config::setConnectionType(ConnectionType type)
{
+ config_setting_t *setting;
+ config_setting_t *root = config_root_setting(&cfg);
+
+ setting = config_setting_get_member(root, "type");
+
+ if(!setting) {
+ setting = config_setting_add(
+ root,
+ "type",
+ CONFIG_TYPE_STRING
+ );
+ }
+
+ if (type == EXPLICIT) {
+ config_setting_set_string(setting, "explicit");
+ }
+ else if (type == REGISTER) {
+ config_setting_set_string(setting, "register");
+ }
}
const char * Config::getProgramDir()
}
void Config::setProgramDir(const char * programDir)
{
+ config_setting_t *setting;
+ config_setting_t *root = config_root_setting(&cfg);
+
+ setting = config_setting_get_member(root, "progdir");
+
+ if(!setting) {
+ setting = config_setting_add(
+ root,
+ "progdir",
+ CONFIG_TYPE_STRING
+ );
+ }
+ config_setting_set_string(setting, programDir);
}
}