CmdLineInterface.h

Go to the documentation of this file.
00001 
00002 /****************************************************************************** 
00003  * 
00004  *  file:  CmdLineInterface.h
00005  * 
00006  *  Copyright (c) 2003, Michael E. Smoot .
00007  *  Copyright (c) 2004, Michael E. Smoot, Daniel Aarno.
00008  *  All rights reverved.
00009  *
00010  *  See the file COPYING in the top directory of this distribution for
00011  *  more information.
00012  *  
00013  *  THE SOFTWARE IS PROVIDED _AS IS_, WITHOUT WARRANTY OF ANY KIND, EXPRESS 
00014  *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
00015  *  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
00016  *  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
00017  *  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
00018  *  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
00019  *  DEALINGS IN THE SOFTWARE.  
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, char** argv)=0;
00086 
00090         virtual CmdLineOutput* getOutput()=0;
00091 
00095         virtual void setOutput(CmdLineOutput* co)=0;
00096 
00100         virtual std::string& getVersion()=0;
00101 
00105         virtual std::string& getProgramName()=0;
00106 
00110         virtual std::list<Arg*>& getArgList()=0;
00111 
00115         virtual XorHandler& getXorHandler()=0;
00116 
00120         virtual char getDelimiter()=0;
00121 
00125         virtual std::string& getMessage()=0;
00126 
00131         virtual bool hasHelpAndVersion()=0;
00132 };
00133 
00134 } //namespace
00135 
00136 
00137 #endif 

Generated on Thu Dec 14 23:01:53 2006 for tclap by  doxygen 1.5.1