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

Contents of /FCUtils/CmdLineParser/src/CmdLineParser.cpp

Parent Directory Parent Directory | Revision Log Revision Log


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

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