Changeset 6410 in orxonox.OLD for branches/preferences/src/lib/parser
- Timestamp:
- Jan 4, 2006, 7:50:52 PM (19 years ago)
- Location:
- branches/preferences/src/lib/parser/preferences
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/preferences/src/lib/parser/preferences/cmd_line_prefs_reader.cc
r6403 r6410 20 20 using namespace std; 21 21 22 static const argp_option argp_options[] = {23 {"server", 's', 0, 0, "Run as Server"},24 {"client", 'c', 0, 0, "Run as Client"},25 {"host", 'h', "ADDRESS", 0, "Host to connect to"},26 {"port", 'p', "PORT", 0, "Port number"},27 {"user-config", 1000, "FILE", 0, "Location of config file" },28 { 0 }29 };30 31 const char* argp_program_version = "orxonox";32 const char* argp_program_bug_address = "bugs@orxonox.net";33 static char doc[] = "doc goes here";34 static char args_doc[] = "args doc goes here";35 36 static Argp argp = { argp_options, CmdLinePrefsReader::parse_opt, args_doc, doc };37 38 22 /** 39 23 * standard constructor … … 41 25 CmdLinePrefsReader::CmdLinePrefsReader(int argc, char** argv) 42 26 { 43 //set default values44 cmdLineArgs.host = NULL;45 cmdLineArgs.port = NULL;46 cmdLineArgs.configFile = NULL;47 cmdLineArgs.isServer = false;48 cmdLineArgs.isClient = false;49 50 51 argp_parse((const struct argp *)&argp, (int)argc, (char**)argv, (unsigned)NULL, (int*)NULL, (void*)&(this->cmdLineArgs));52 53 54 PRINTF(0)("host = %s\n", cmdLineArgs.host);55 PRINTF(0)("port = %s\n", cmdLineArgs.port);56 PRINTF(0)("configfile = %s\n", cmdLineArgs.configFile);57 PRINTF(0)("server = %d\n", cmdLineArgs.isServer);58 PRINTF(0)("client = %d\n", cmdLineArgs.isClient);59 27 60 28 } … … 68 36 } 69 37 70 error_t CmdLinePrefsReader::parse_opt(int key, char *arg, ArgpState *state)71 {72 CmdLineArgs * cmdLineArgs = (CmdLineArgs*)(state->input);73 38 74 switch ( key )75 {76 case 1000:77 if ( cmdLineArgs->configFile!=NULL ) delete[] cmdLineArgs->configFile;78 cmdLineArgs->configFile = new char[strlen(arg)+1];79 strcpy(cmdLineArgs->configFile, arg);80 break;81 82 case 's':83 cmdLineArgs->isServer = true;84 break;85 86 case 'c':87 cmdLineArgs->isClient = true;88 break;89 90 case 'h':91 if ( cmdLineArgs->host!=NULL ) delete[] cmdLineArgs->host;92 cmdLineArgs->host = new char[strlen(arg)+1];93 strcpy(cmdLineArgs->host, arg);94 break;95 96 case 'p':97 if ( cmdLineArgs->port!=NULL ) delete[] cmdLineArgs->port;98 cmdLineArgs->port = new char[strlen(arg)+1];99 strcpy(cmdLineArgs->port, arg);100 break;101 102 default:103 return ARGP_ERR_UNKNOWN;104 }105 106 return 0;107 }108 109 110 -
branches/preferences/src/lib/parser/preferences/cmd_line_prefs_reader.h
r6393 r6410 10 10 #include "debug.h" 11 11 12 #include "src/lib/argp/argp.h"13 14 typedef struct {15 bool isServer;16 bool isClient;17 char * host;18 char * port;19 char * configFile;20 } CmdLineArgs;21 22 typedef struct argp Argp;23 typedef struct argp_state ArgpState;24 25 12 //! A class for reading commandline arguments into Preferences 26 13 class CmdLinePrefsReader { … … 30 17 virtual ~CmdLinePrefsReader(); 31 18 32 static error_t parse_opt(int key, char *arg, ArgpState *state);33 34 private:35 CmdLineArgs cmdLineArgs;36 19 37 20 };
Note: See TracChangeset
for help on using the changeset viewer.