00001 00002 00003 /****************************************************************************** 00004 * 00005 * file: CmdLineOutput.h 00006 * 00007 * Copyright (c) 2004, Michael E. Smoot 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_CMDLINEOUTPUT_H 00024 #define TCLAP_CMDLINEOUTPUT_H 00025 00026 #include <string> 00027 #include <vector> 00028 #include <list> 00029 #include <iostream> 00030 #include <iomanip> 00031 #include <algorithm> 00032 00033 namespace TCLAP { 00034 00035 class CmdLineInterface; 00036 class ArgException; 00037 00038 /** 00039 * The interface that any output object must implement. 00040 */ 00041 class CmdLineOutput 00042 { 00043 00044 public: 00045 00046 /** 00047 * Virtual destructor. 00048 */ 00049 virtual ~CmdLineOutput() {} 00050 00051 /** 00052 * Generates some sort of output for the USAGE. 00053 * \param c - The CmdLine object the output is generated for. 00054 */ 00055 virtual void usage(CmdLineInterface& c)=0; 00056 00057 /** 00058 * Generates some sort of output for the version. 00059 * \param c - The CmdLine object the output is generated for. 00060 */ 00061 virtual void version(CmdLineInterface& c)=0; 00062 00063 /** 00064 * Generates some sort of output for a failure. 00065 * \param c - The CmdLine object the output is generated for. 00066 * \param e - The ArgException that caused the failure. 00067 */ 00068 virtual void failure( CmdLineInterface& c, 00069 ArgException& e )=0; 00070 00071 }; 00072 00073 } //namespace TCLAP 00074 #endif