00001 #ifndef N2NC_UTILS_ARGSARGUMENTSHELPER_H
00002 #define N2NC_UTILS_ARGSARGUMENTSHELPER_H
00003
00004 #include "nixsys.h"
00005 #include "validargument.h"
00006 #include "argument.h"
00007
00008 namespace n2nc {
00009 namespace utils {
00010 namespace args {
00011
00012 using namespace std ;
00013
00021 class ArgumentsHelper{
00022 public:
00023 ArgumentsHelper(char** args, int argc );
00024 ~ArgumentsHelper();
00025
00026 ValidArgument* addValid(string name);
00028 bool validate() ;
00029 int size();
00030 Argument* getArgumentByName(string name)throw() ;
00031 Argument* operator[](string name)throw() ;
00032 string toString();
00033 string dumpAllValid();
00034 string getRawArg(int pos);
00035 string getFreeArg(int pos);
00036
00037 private:
00038 vector<Argument> m_arguments ;
00039 vector<ValidArgument> m_validargs ;
00040 vector<string> m_freeargs ;
00041 char** m_argv ;
00042
00046 };
00047
00048 }
00049 }
00050 }
00051
00052 #endif