/////////////////////////////////////////////////////////////////////////////////////////////////////////// // Helper Functions ////////////////////////////////////////////////////////////////////////////////////////////////////////// string Application::prompt_primary(){ string attr_list; //full command of space delimited primary keys vector<string> split_list; //full command of primary keys in vector stringstream ss; //used for final return including braces and brackets cout << "------------------------------------------------------------------------------- " << endl; cout << "What key values would you like to use to specify unique entries? " << endl; cout << "i.e. two entries cannot have the same name and age " << endl; cin.ignore(numeric_limits<streamsize>::max(), '\n'); //clear junk from cin getline(cin, attr_list); split_list = split_on_spaces(attr_list); //divide attr_list into a vector ss << "PRIMARY KEY ("; //store the divided vector into primary key with commas between values for (int i = 0; i < split_list.size(); i++){ ss << split_list[i]; if (i < split_list.size() - 1){ ss << ", "; } } ss << ")"; return ss.str(); //returns (primary, key, in, this, format) }
int read_nkn_cfg(char * configfile) { FILE * fp; char * p; char buf[1024]; int len, i; if (configfile==NULL) { configfile = (char*)NKNSRV_CONF_FILE; } fp = fopen(configfile,"r"); if ( fp == NULL ) { printf("Unable to open configuration file %s\n", configfile); exit(0); } while( !feof(fp) ) { if(fgets(buf, 1024, fp) == NULL) break; p=buf; if(*p=='#' || *p == '\r' || *p == '\n') continue; mark_end_of_line(p); int assigned = 0; for(i=0; !assigned; i++) { NknCfgParamValue *cfgParams = &nknCfgParams[i]; const char *name = cfgParams->defn.name; if ( name == NULL ) break; len = strlen(name); if ( strncmp( buf, name, len ) == 0 ) { p = skip_to_value( &buf[len] ); switch( cfgParams->defn.type ) { case NKN_INT_TYPE: if( (strlen(p)>=3) && (p[0]=='0') && (p[1]=='x') ) { *((int *)cfgParams->pAddr) = convert_hexstr_2_int32(p+2); } else { *((int *)cfgParams->pAddr) = atoi(p); } assigned = 1; break; case NKN_LONG_TYPE: if( (strlen(p)>=3) && (p[0]=='0') && (p[1]=='x') ) { *((int *)cfgParams->pAddr) = convert_hexstr_2_int64(p+2); } else { *((long *)cfgParams->pAddr) = atol(p); } assigned = 1; break; case NKN_FLOAT_TYPE: *((float *)cfgParams->pAddr) = (float)atof(p); assigned = 1; break; case NKN_DOUBLE_TYPE: *((double *)cfgParams->pAddr) = atof(p); assigned = 1; break; case NKN_STR_PTR_TYPE: *((char **)cfgParams->pAddr) = nkn_strdup_type(p, mod_mgmta_charbuf); assigned = 1; break; case NKN_STR_LIST_TYPE: *((char ***)cfgParams->pAddr) = split_on_spaces(p); assigned = 1; break; case NKN_FUNC_TYPE: (*((CfgEntry)cfgParams->pAddr))(p); assigned = 1; break; case NKN_CB_FUNC_TYPE: (*((CfgEntry)cfgParams->pAddr))(p); assigned = 1; break; default: break; } } } } fclose(fp); return NKN_SUCCESS; }