![]() |
VR-Link API Documentation for HLA 1.3
|
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