//this function will be called by any file Monitor if the file is changed. it will load file and invoke the update method when there is data change. void Configuration::fileChanged(const string &fileName) { if(files.find(fileName) != files.end()) { set < Data > prev = files[fileName]; files[fileName].clear(); loadPropertyConfig(fileName); set < Data > &curr = files[fileName]; set < Data > :: iterator prevIt = prev.begin(); for(; prevIt != prev.end(); ++ prevIt) { if(false == hasKeyInFile(fileName, prevIt->key)) { //deletion occurs ConfigurationEvent event(CONFIGURATION_DELETED, fileName, prevIt->key, prevIt->value); update(event); //config is deleted from file, so treat is like default configuratoin. addProperty("", prevIt->key, prevIt->value); } else if(prevIt->value != getValueFromFile(fileName, prevIt->key)) { //modification occurs ConfigurationEvent event(CONFIGURATION_MODIFIED, fileName, prevIt->key, prevIt->value); update(event); } } set < Data > :: iterator currIt = curr.begin(); for(; currIt != curr.end(); ++currIt) { if(prev.find(*currIt) == prev.end()) { //addition occurs ConfigurationEvent event(CONFIGURATION_ADDED, fileName, currIt->key, currIt->value); update(event); } } } }
void sim_params::load(string filename) { string word; ifstream file(filename.c_str()); if (!file) {cerr << "parameters file " << filename << " not opened " << endl; exit(1);} file >> word; file >> word; Eta = getValueFromFile(file); theta = getValueFromFile(file); b = getValueFromFile(file); a1 = getValueFromFile(file); B1 = getValueFromFile(file); a2 = getValueFromFile(file); B2 = getValueFromFile(file); a3 = getValueFromFile(file); a4 = getValueFromFile(file); B4 = getValueFromFile(file); n_area = getValueFromFile(file); c_p1 = getValueFromFile(file); c_p2 = getValueFromFile(file); c_Rl = getValueFromFile(file); c_Rs = getValueFromFile(file); c_Rb = getValueFromFile(file); c_Rr = getValueFromFile(file); k_b = getValueFromFile(file); k_r = getValueFromFile(file); Y = getValueFromFile(file); c_bio = getValueFromFile(file); c_acc = getValueFromFile(file); c_r1 = getValueFromFile(file); c_r2 = getValueFromFile(file); c_ext = getValueFromFile(file); Pi_0 = getValueFromFile(file); c_d0 = getValueFromFile(file); c_d1 = getValueFromFile(file); c_d2 = getValueFromFile(file); c_d3 = getValueFromFile(file); seed_mass = getValueFromFile(file); wood_dens = getValueFromFile(file); c_s0 = getValueFromFile(file); log_mean_disturbance_interval = getValueFromFile(file); file.close(); }