$search
00001 00011 /***************************************************************************** 00012 ** Ifdefs 00013 *****************************************************************************/ 00014 00015 #ifndef TCLAP_COMMANDLINE_INTERFACE_H 00016 #define TCLAP_COMMANDLINE_INTERFACE_H 00017 00018 #include <string> 00019 #include <vector> 00020 #include <list> 00021 #include <iostream> 00022 #include <algorithm> 00023 00024 00025 namespace ecl { 00026 00027 class Arg; 00028 class CmdLineOutput; 00029 class XorHandler; 00030 00036 class CmdLineInterface 00037 { 00038 public: 00039 00043 virtual ~CmdLineInterface() {} 00044 00049 virtual void add( Arg& a )=0; 00050 00055 virtual void add( Arg* a )=0; 00056 00064 virtual void xorAdd( Arg& a, Arg& b )=0; 00065 00071 virtual void xorAdd( std::vector<Arg*>& xors )=0; 00072 00078 virtual void parse(int argc, char** argv)=0; 00079 00083 virtual CmdLineOutput* getOutput()=0; 00084 00088 virtual void setOutput(CmdLineOutput* co)=0; 00089 00093 virtual std::string& getVersion()=0; 00094 00098 virtual std::string& getProgramName()=0; 00099 00103 virtual std::list<Arg*>& getArgList()=0; 00104 00108 virtual XorHandler& getXorHandler()=0; 00109 00113 virtual char getDelimiter()=0; 00114 00118 virtual std::string& getMessage()=0; 00119 00124 virtual bool hasHelpAndVersion()=0; 00125 }; 00126 00127 }; // namespace ecl 00128 00129 00130 #endif