Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021  
00022 
00023 #ifndef TCLAP_COMMANDLINE_INTERFACE_H
00024 #define TCLAP_COMMANDLINE_INTERFACE_H
00025 
00026 #include <string>
00027 #include <vector>
00028 #include <list>
00029 #include <iostream>
00030 #include <algorithm>
00031 
00032 
00033 namespace TCLAP {
00034      
00035 class Arg;
00036 class CmdLineOutput;
00037 class XorHandler;
00038 
00043 class CmdLineInterface
00044 {
00045         public:
00046 
00050                 virtual ~CmdLineInterface() {}
00051 
00056                 virtual void add( Arg& a )=0;
00057 
00062                 virtual void add( Arg* a )=0;
00063 
00071                 virtual void xorAdd( Arg& a, Arg& b )=0;
00072 
00078                 virtual void xorAdd( std::vector<Arg*>& xors )=0;
00079 
00085                 virtual void parse(int argc, const char * const * argv)=0;
00086 
00092         void parse(std::vector<std::string>& args);
00093 
00097                 virtual CmdLineOutput* getOutput()=0;
00098 
00102                 virtual void setOutput(CmdLineOutput* co)=0;
00103 
00107                 virtual std::string& getVersion()=0;
00108 
00112                 virtual std::string& getProgramName()=0;
00113 
00117                 virtual std::list<Arg*>& getArgList()=0;
00118 
00122                 virtual XorHandler& getXorHandler()=0;
00123 
00127                 virtual char getDelimiter()=0;
00128 
00132                 virtual std::string& getMessage()=0;
00133 
00138                 virtual bool hasHelpAndVersion()=0;
00139 
00144                 virtual void reset()=0;
00145 };
00146 
00147 } 
00148 
00149 
00150 #endif