BASIS  version 1.2.3 (revision 2104)
CmdLineOutput.h
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