/[PAMELA software]/FCUtils/CmdLineParser/src/CmdLineParser.cpp
ViewVC logotype

Annotation of /FCUtils/CmdLineParser/src/CmdLineParser.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Wed May 7 10:33:14 2008 UTC (16 years, 7 months ago) by nikolas
Branch: MAIN, first
CVS Tags: v1r00, HEAD
Changes since 1.1: +0 -0 lines
 An usefull command line parser

1 nikolas 1.1 #include <iostream>
2     #include "CmdLineParser.h"
3    
4     namespace FCUtils {
5    
6     void CmdLineParser::ParseCmdLine(int argc, char ** argv) {
7     int i=1;
8     string arg,name,val;
9     while( i < argc ) {
10     // check for options starting with - or +
11     arg=argv[i++];
12     string::size_type p= arg.find_first_of("-",0,1);
13     switch (p) {
14     case 0:
15     // If is an option add it to name and store the position to
16     // save the val into
17     name=arg.substr(1,arg.size()-1);
18     // Let's start supposing is a boolean parameter
19     args_[name]="true";
20     break;
21     case string::npos :
22     // Here no - or + found, assign it to the latest saved
23     // parameter
24     args_[name]=arg;
25     break;
26     default:
27     // put here an error message !
28     break;
29     }
30     }
31     }
32    
33    
34     void CmdLineParser::MoveToOptions() {
35     for (ArgMap::const_iterator i = args_.begin();
36     i != args_.end(); ++ i) {
37     switch(optmode_) {
38     case UPDATE:
39     Options::Get()->UpdateOption(i->first, i->second);
40     break;
41     case DEFINE:
42     Options::Get()->SetOption(i->first, i->second);
43     break;
44     default:
45     break;
46     }
47     }
48    
49     }
50    
51     void CmdLineParser::Print() const {
52     for (ArgMap::const_iterator i = args_.begin();
53     i != args_.end(); ++ i) {
54     std::cout << " Arg : " << i->first
55     <<", value: " <<i->second << std::endl;
56     }
57     }
58    
59     }; // namespace FCUtils

  ViewVC Help
Powered by ViewVC 1.1.23