#include <stdlib.h>
#include <unistd.h>
+#include <libconfig.h>
class VLPEntry
{
QLabel* tmpQLabel;
QPushButton *addbtn,*delbtn,*okbtn,*cancelbtn;
VLPEntry *pom;
- QFile *vlp_file;
int i,j;
- char pomstr[255],line[255];
+ char pomstr[255];
//dlg.setStyle(WindowsStyle);
nodelist = new QListBox( &dlg, "ListBox_1" );
{
j = Nodes.at();
sprintf(pomstr,"%s.cfg",pom->addr);
- vlp_file = new QFile(pomstr);
- vlp_file->open(IO_WriteOnly);
- sprintf(line,"progdir=%s\n",pom->progdir);
- vlp_file->writeBlock(line,strlen(line));
- sprintf(line,"homedir=%s\n",pom->homedir);
- vlp_file->writeBlock(line,strlen(line));
- sprintf(line,"node_number=%d\n",pom->ID);
- vlp_file->writeBlock(line,strlen(line));
- if ( pom->type == 0)
- {
- sprintf(line,"type=explicit\n");
- vlp_file->writeBlock(line,strlen(line));
+
+ config_t cfg;
+ config_setting_t *root, *setting;
+ config_init(&cfg);
+
+ 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, pom->progdir);
+
+ setting = config_setting_get_member(root, "homedir");
+ if(!setting) {
+ setting = config_setting_add(root, "homedir", CONFIG_TYPE_STRING);
+ }
+ config_setting_set_string(setting, pom->homedir);
+
+ 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, pom->ID);
+
+ if (pom->type == 0)
+ {
+ setting = config_setting_get_member(root, "type");
+ if(!setting) {
+ setting = config_setting_add(root, "type", CONFIG_TYPE_STRING);
}
+ config_setting_set_string(setting, "explicit");
+ }
for(i=0;i<Nodes.count();i++)
- if (pom!=Nodes.at(i)) {
- sprintf(line,"host=%s\n",Nodes.at(i)->addr);
- vlp_file->writeBlock(line,strlen(line));
- };
- vlp_file->close();
+ {
+ if (pom!=Nodes.at(i))
+ {
+ setting = config_setting_get_member(root, "host");
+ if(!setting) {
+ setting = config_setting_add(root, "host", CONFIG_TYPE_STRING);
+ }
+ config_setting_set_string(setting, Nodes.at(i)->addr);
+ };
+ }
+
+ if(!config_write_file(&cfg, pomstr))
+ {
+ fprintf(stderr, "Error while writing to file: %s.\n", pomstr);
+ }
+ config_destroy(&cfg);
+
pom = Nodes.at(j);
pom = Nodes.next();
}