Program Listing for File cmd_line_interface.hpp

Return to documentation for file (/tmp/ws/src/ecl_core/ecl_command_line/include/ecl/command_line/cmd_line_interface.hpp)

/*****************************************************************************
** Ifdefs
*****************************************************************************/

#ifndef TCLAP_COMMANDLINE_INTERFACE_H
#define TCLAP_COMMANDLINE_INTERFACE_H

#include <string>
#include <vector>
#include <list>
#include <iostream>
#include <algorithm>


namespace ecl {

class Arg;
class CmdLineOutput;
class XorHandler;

class CmdLineInterface
{
    public:

        virtual ~CmdLineInterface() {}

        virtual void add( Arg& a )=0;

        virtual void add( Arg* a )=0;

        virtual void xorAdd( Arg& a, Arg& b )=0;

        virtual void xorAdd( std::vector<Arg*>& xors )=0;

        virtual void parse(int argc, char** argv)=0;

        virtual CmdLineOutput* getOutput()=0;

        virtual void setOutput(CmdLineOutput* co)=0;

        virtual std::string& getVersion()=0;

        virtual std::string& getProgramName()=0;

        virtual std::list<Arg*>& getArgList()=0;

        virtual XorHandler& getXorHandler()=0;

        virtual char getDelimiter()=0;

        virtual std::string& getMessage()=0;

        virtual bool hasHelpAndVersion()=0;
};

} // namespace ecl


#endif