Example #1
0
//! set parameter
void sci_src_x::set(int param, var* p_v)
{
    int iv;
    vec v;
    cvec cv;
    var_ivec *p_var_ivec;
    var_vec *p_var_vec;
    var_cvec *p_var_cvec;


    p_var_vec = NULL;
    p_var_ivec = NULL;
    p_var_cvec = NULL;
    // p_v might be either var_vec, var_ivec, var_cvec
    p_var_vec = dynamic_cast<var_vec *> (p_v);
    if (p_var_vec ==  NULL) {
        p_var_ivec = dynamic_cast<var_ivec *> (p_v);
        if (p_var_ivec == NULL) {
            p_var_cvec = dynamic_cast<var_cvec *> (p_v);
            if (p_var_cvec == NULL) {
                throw sci_exception ("sci_src_x::set - p_v -  bad cast");
            }
        }
    }

    switch (param)
    {
    case SCI_SIZE:
        if (p_var_vec) {
            iv = (int)p_var_vec->v[0];
        }
        else if (p_var_ivec) {
            iv = p_var_ivec->v[0];
        }
        else {
            throw sci_exception ("sci_src_x::set - SCI_SIZE -  bad cast");
        }
        set_size(iv);
        break;

    case SCI_WIN_TYPE:
        if (p_var_vec) {
            iv = (int)p_var_vec->v[0];
        }
        else if (p_var_ivec) {
            iv = p_var_ivec->v[0];
        }
        else {
            throw sci_exception ("sci_src_x::set - SCI_WIN_TYPE -  bad cast");
        }
        set_win_type(iv);
        break;

    case SCI_OUTPUT:
        v = p_var_vec->v;
        set_output(v[0]);
        break;

    default:
        throw sci_exception ("sci_src_x::set - unknown param");
    }
    return;
};
Example #2
0
// We should not override the options specified in the command line
int parseInfodConfFile(infod_cmdline_t *opts) {

     conf_file_t cf;


     if(!(cf = cf_new(validVarNames))) {
	  fprintf(stderr, "Error generating conf file object\n");
	  return 0;
     }
     printf("Parsing configuration file [%s]\n", opts->opt_confFile);
     if(access(opts->opt_confFile, R_OK) != 0) {
	  fprintf(stderr, "Error: configuration files [%s] does not exists or is not readable\n",
		  opts->opt_confFile);
	  return 0;
     }
     
     if(!cf_parseFile(cf, opts->opt_confFile)) {
	  fprintf(stderr, "Error parsing configuration file\n");
	  return 0;
     }

     conf_var_t ent;
     int        intVal;
     if(cf_getVar(cf, "provider", &ent)) 
	     set_provider(ent.varValue);
     if(cf_getVar(cf, "myip", &ent)) 
	     set_my_ip(ent.varValue);
     if(cf_getVar(cf, "port", &ent)) {
          if(!getInt(ent.varValue, &intVal)) {
               fprintf(stderr, "Error: parameter port is not an integer\n");
               return 0;
          }
          set_port(&intVal);
     }
     if(cf_getVar(cf, "maptype", &ent)) 
	     set_map_type(ent.varValue);
     if(cf_getVar(cf, "mapfile", &ent)) 
	     set_map_file(ent.varValue);
     if(cf_getVar(cf, "mapcmd", &ent)) 
	     set_map_cmd(ent.varValue);
     if(cf_getVar(cf, "timestep", &ent)) {
          if(!getInt(ent.varValue, &intVal)) {
               fprintf(stderr, "Error: parameter timestep is not an integer\n");
               return 0;
          }
          set_time_step(&intVal);
     }
     if(cf_getVar(cf, "gossip-algo", &ent)) 
	     set_gossip_algo(ent.varValue);
     if(cf_getVar(cf, "wintype", &ent)) 
	     set_win_type(ent.varValue);
     if(cf_getVar(cf, "winparam", &ent)) 
	     set_win_param(ent.varValue);

     if(cf_getVar(cf, "avgage", &ent)) {
          if(!getInt(ent.varValue, &intVal)) {
               fprintf(stderr, "Error: parameter avgage is not an integer\n");
               return 0;
          }
          set_avgage(&intVal);
     }
     
     if(cf_getVar(cf, "avgmax", &ent)) {
          if(!getInt(ent.varValue, &intVal)) {
               fprintf(stderr, "Error: parameter avgmax is not an integer\n");
               return 0;
          }
          set_avgmax(&intVal);
     }
     
     if(cf_getVar(cf, "upto-entries", &ent)) {
          if(!getInt(ent.varValue, &intVal)) {
               fprintf(stderr, "Error: parameter upto-entries is not an integer\n");
               return 0;
          }
          set_uptoentries(&intVal);
     }

     if(cf_getVar(cf, "watch-fs", &ent)) 
	     set_watch_fs(ent.varValue);
     if(cf_getVar(cf, "watch-net", &ent)) 
	     set_watch_net(ent.varValue);
     if(cf_getVar(cf, "info-file", &ent)) 
	     set_info_file(ent.varValue);
     if(cf_getVar(cf, "eco-file", &ent)) 
	     set_eco_file(ent.varValue);
     if(cf_getVar(cf, "proc-file", &ent)) 
	     set_proc_file(ent.varValue);
     if(cf_getVar(cf, "jmig-file", &ent)) 
	  set_jmig_file(ent.varValue);
     

     cf_free(cf);
	
	

     return 1;
}