Go to the documentation of this file.00001
00011
00012
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 };
00128
00129
00130 #endif