#include #include #include "../arg.h" //define ip4 127.0.0.1:8080 /* s_arg_ip src_ip = { port:8080, .ip = 0x7f000001, .result = NULL }; */ /* //? //frequency range from 88:108 s_arg_range freq_range = { .start = 88, .end = 108, .step = 100e3, .result = NULL }; */ /* s_arg_float ratio_float = { .val = 0.8, .result = NULL }; */ /* char *color_list[] = {"RED","GREEN","BLUE"}; s_arg_list color_name_list = { .num = 3, .default_val = "RED", .vals = color_list, .result = NULL }; */ /* s_arg_val number_val = { .ptr = NULL, .default_ptr = "None", .result = NULL }; */ /* s_arg_flag flag_help = { .used = 0, .result = NULL }; */ /* //cant be const def_arg cmd_arg[] = { ARG_ENTRY("-a",IP, &src_ip,"test ip address argument"), ARG_ENTRY("-b",RANGE,&freq_range,"test integer range argument"), ARG_ENTRY("-c",FLOAT,&ratio_float,"test float number"), ARG_ENTRY("-d",LIST, &color_name_list,"check list of values"), ARG_ENTRY("-e",VAL, &number_val,"string number values"), ARG_ENTRY("-f",FILE, NULL,"check file argument"), ARG_ENTRY("-g",FLAG, &flag_help,"check flag argument"), {NULL,0,NULL} }; */ extern "C" void* emulate_cc_new(unsigned len) { \ printf("New allocated\n"); void *p = malloc(len); if (p == 0) { /* Don't use stdio (e.g. fputs), because that may want to allocate more * memory. */ (void)!write(2, "out of memory\n", 14); abort(); } return p; } extern "C" void emulate_cc_delete(void* p) { if (p != 0) free(p); } void* operator new(long unsigned int len) __attribute__((alias("emulate_cc_new"))); void* operator new[](long unsigned int len) __attribute__((alias("emulate_cc_new"))); void operator delete(void* p, unsigned long len) __attribute__((alias("emulate_cc_delete"))); void operator delete[](void* p, unsigned long len) __attribute__((alias("emulate_cc_delete"))); void* __cxa_pure_virtual = 0; void *__gxx_personality_v0=0; #include "../arg.h" int main( int argc, char **argv ) { /* int i=0; arg_t *cfg = NULL; i = 0; while ( cmd_arg[i].param != NULL ) { printf("%s - %s\n",cmd_arg[i].param, cmd_arg[i].help); i++; } cfg = arg_load( argc, argv, cmd_arg ); if (cfg->size == 0) { printf("No arguments found\n"); //goto exit_error; } for (i=0;isize;i++) { printf("TYPE:%d\n", cfg->arg[i]->type); } //arg_print( cfg ); if (flag_help.result != NULL) { printf("Help flag %d\n", flag_help.result->flag); } if (number_val.result != NULL) { printf("Number val :%s\n", number_val.result->ptr); } //arg_free( cfg ); return 0; exit_error: arg_free( cfg ); return -1; */ CmdArgFlag *enable = new CmdArgFlag(); CmdArgFlagConf enableConf = CmdArgFlagConf(); CmdArgDefault enableDefault = CmdArgDefault((char *)"-a", &enableConf, (char *)"enable A", enable); CmdArgFlag *enableText = new CmdArgFlag(); CmdArgFlagConf enableTextConf = CmdArgFlagConf(); CmdArgDefault enableTextDefault = CmdArgDefault((char *)"-b", &enableTextConf, (char *)"enable text", enableText); CmdArgVal *setFilename = new CmdArgVal(); CmdArgValConf setFilenameConf = CmdArgValConf(); CmdArgDefault setFilenameDefault = CmdArgDefault((char *)"-c", &setFilenameConf, (char *)"set filename", setFilename); CmdArg arguments = CmdArg(); arguments.add(&enableTextDefault); arguments.add(&enableDefault); arguments.add(&setFilenameDefault); arguments.load(argc, argv); if (enable->getValue()) { printf("enable is set\n"); } if (enableText->getValue()) { printf("enable text is set\n"); } if (setFilename->isUsed()) { printf("filename set to %s\n", setFilename->getValue()); } }