| 1 |
#include "Options.h" |
| 2 |
|
| 3 |
namespace FCUtils { |
| 4 |
|
| 5 |
Options * Options::instance_=0; |
| 6 |
|
| 7 |
Options::Options() { |
| 8 |
// Set the error Option waiting for exceptions inplementation |
| 9 |
}; |
| 10 |
|
| 11 |
Options * Options::Get(){ |
| 12 |
if(instance_==0) instance_=new Options(); |
| 13 |
return instance_; |
| 14 |
}; |
| 15 |
|
| 16 |
bool Options::IsOptionDef(string const &name) { |
| 17 |
return (GetOption(name).name!="error"); |
| 18 |
} |
| 19 |
|
| 20 |
// Option const & Options::GetOption(string const &name){ |
| 21 |
// OptMap::const_iterator it= options_.find(ToLower(name)); |
| 22 |
Option & Options::GetOption(string const &name){ |
| 23 |
OptMap::iterator it= options_.find(ToLower(name)); |
| 24 |
if(it== options_.end()) { |
| 25 |
cout << endl << |
| 26 |
" --->>> Error in Options::GetOption , no option : " |
| 27 |
+name+" found !!!! " << endl; |
| 28 |
Help(); |
| 29 |
exit(-1); |
| 30 |
} |
| 31 |
return it->second; |
| 32 |
} |
| 33 |
|
| 34 |
bool Options::UpdateOption( const string &name, const string &val){ |
| 35 |
switch(IsOptionDef(name)){ |
| 36 |
case true: |
| 37 |
options_[ToLower(name)].val=val; |
| 38 |
return true; |
| 39 |
default: |
| 40 |
return false; |
| 41 |
} |
| 42 |
return false; |
| 43 |
} |
| 44 |
|
| 45 |
void Options::Help() const { |
| 46 |
cout << endl << " Usage : " << endl; |
| 47 |
for( OptMap::const_iterator i=options_.begin(); i!=options_.end(); ++i) |
| 48 |
i->second.Help(); |
| 49 |
cout << endl << endl; |
| 50 |
} |
| 51 |
void Options::Print() const { |
| 52 |
for( OptMap::const_iterator i=options_.begin(); i!=options_.end(); ++i) |
| 53 |
i->second.Print(); |
| 54 |
} |
| 55 |
|
| 56 |
}; // namespace FCUtils |