VR-Link API Documentation for HLA 1.3
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 DtCmdLine_COMMANDLINE_INTERFACE_H
00024 #define DtCmdLine_COMMANDLINE_INTERFACE_H
00025  
00029 
00030 #include <string>
00031 #include <vector>
00032 #include <list>
00033 #include <iostream>
00034 #include <algorithm>
00035 
00036 #ifdef DtUSE_UTILITIES_NAMESPACE
00037 namespace DtUSE_UTILITIES_NAMESPACE
00038 {
00039 #endif
00040 
00041 namespace DtCmdLine {
00042 
00043    class Arg;
00044    class CmdLineOutput;
00045    class XorHandler;
00046 
00051 
00052    class CmdLineInterface
00053    {
00054    public:
00055 
00059       virtual ~CmdLineInterface() {}
00060 
00065       virtual void add( Arg& a )=0;
00066 
00071       virtual void add( Arg* a )=0;
00072 
00080       virtual void xorAdd( Arg& a, Arg& b )=0;
00081 
00087       virtual void xorAdd( std::vector<Arg*>& xors )=0;
00088 
00094       virtual void parse(int argc, char** argv)=0;
00095 
00099       virtual CmdLineOutput* getOutput()=0;
00100 
00104       virtual void setOutput(CmdLineOutput* co)=0;
00105 
00109       virtual std::string& getVersion()=0;
00110 
00114       virtual std::string& getProgramName()=0;
00115 
00119       virtual std::list<Arg*>& getArgList()=0;
00120 
00124       virtual XorHandler& getXorHandler()=0;
00125 
00129       virtual char getDelimiter()=0;
00130 
00134       virtual std::string& getMessage()=0;
00135    };
00136 
00137 } //namespace
00138 
00139 #ifdef DtUSE_UTILITIES_NAMESPACE
00140 }     
00141 #endif
00142 
00143 #endif 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)