Blame src/DllPlugInTester/CommandLineParser.h

Packit Service e31359
#ifndef CPPUNIT_HELPER_COMMANDLINEPARSER_H
Packit Service e31359
#define CPPUNIT_HELPER_COMMANDLINEPARSER_H
Packit Service e31359
Packit Service e31359
#include <cppunit/Portability.h>
Packit Service e31359
#include <deque>
Packit Service e31359
#include <cppunit/plugin/PlugInParameters.h>
Packit Service e31359
#include <string>
Packit Service e31359
#include <stdexcept>
Packit Service e31359
Packit Service e31359
Packit Service e31359
/*! Exception thrown on error while parsing command line.
Packit Service e31359
 */
Packit Service e31359
class CommandLineParserException : public std::runtime_error
Packit Service e31359
{
Packit Service e31359
public:
Packit Service e31359
  CommandLineParserException( std::string message )
Packit Service e31359
    : std::runtime_error( message )
Packit Service e31359
  {
Packit Service e31359
  }
Packit Service e31359
};
Packit Service e31359
Packit Service e31359
Packit Service e31359
struct CommandLinePlugInInfo
Packit Service e31359
{
Packit Service e31359
  std::string m_fileName;
Packit Service e31359
  CPPUNIT_NS::PlugInParameters m_parameters;
Packit Service e31359
};
Packit Service e31359
Packit Service e31359
Packit Service e31359
/*! \brief Parses a command line.
Packit Service e31359
Packit Service e31359
-c --compiler
Packit Service e31359
-x --xml [filename]
Packit Service e31359
-s --xsl stylesheet
Packit Service e31359
-e --encoding encoding
Packit Service e31359
-b --brief-progress
Packit Service e31359
-n --no-progress
Packit Service e31359
-t --text
Packit Service e31359
-o --cout
Packit Service e31359
-w --wait
Packit Service e31359
filename[="options"]
Packit Service e31359
:testpath
Packit Service e31359
Packit Service e31359
 */
Packit Service e31359
class CommandLineParser
Packit Service e31359
{
Packit Service e31359
public:
Packit Service e31359
  /*! Constructs a CommandLineParser object.
Packit Service e31359
   */
Packit Service e31359
  CommandLineParser( int argc, 
Packit Service e31359
                     const char *argv[] );
Packit Service e31359
Packit Service e31359
  /// Destructor.
Packit Service e31359
  virtual ~CommandLineParser();
Packit Service e31359
Packit Service e31359
  /*! Parses the command line.
Packit Service e31359
   * \exception CommandLineParserException if an error occurs.
Packit Service e31359
   */
Packit Service e31359
  void parse();
Packit Service e31359
Packit Service e31359
  bool useCompilerOutputter() const;
Packit Service e31359
  bool useXmlOutputter() const;
Packit Service e31359
  std::string getXmlFileName() const;
Packit Service e31359
  std::string getXmlStyleSheet() const;
Packit Service e31359
  std::string getEncoding() const;
Packit Service e31359
  bool useBriefTestProgress() const;
Packit Service e31359
  bool noTestProgress() const;
Packit Service e31359
  bool useTextOutputter() const;
Packit Service e31359
  bool useCoutStream() const;
Packit Service e31359
  bool waitBeforeExit() const;
Packit Service e31359
  std::string getTestPath() const;
Packit Service e31359
  int getPlugInCount() const;
Packit Service e31359
  CommandLinePlugInInfo getPlugInAt( int index ) const;
Packit Service e31359
Packit Service e31359
protected:
Packit Service e31359
  /// Prevents the use of the copy constructor.
Packit Service e31359
  CommandLineParser( const CommandLineParser &copy );
Packit Service e31359
Packit Service e31359
  /// Prevents the use of the copy operator.
Packit Service e31359
  void operator =( const CommandLineParser &copy );
Packit Service e31359
Packit Service e31359
  void readNonOptionCommands();
Packit Service e31359
Packit Service e31359
  bool hasNextArgument() const;
Packit Service e31359
Packit Service e31359
  std::string getNextArgument();
Packit Service e31359
Packit Service e31359
  std::string getCurrentArgument() const;
Packit Service e31359
Packit Service e31359
  bool argumentStartsWith( const std::string &expected ) const;
Packit Service e31359
Packit Service e31359
  void getNextOption();
Packit Service e31359
Packit Service e31359
  bool isOption( const std::string &shortName,
Packit Service e31359
                 const std::string &longName );
Packit Service e31359
Packit Service e31359
  std::string getNextParameter();
Packit Service e31359
Packit Service e31359
  std::string getNextOptionalParameter();
Packit Service e31359
Packit Service e31359
  void fail( std::string message );
Packit Service e31359
Packit Service e31359
protected:
Packit Service e31359
  bool m_useCompiler;
Packit Service e31359
  bool m_useXml;
Packit Service e31359
  std::string m_xmlFileName;
Packit Service e31359
  std::string m_xsl;
Packit Service e31359
  std::string m_encoding;
Packit Service e31359
  bool m_briefProgress;
Packit Service e31359
  bool m_noProgress;
Packit Service e31359
  bool m_useText;
Packit Service e31359
  bool m_useCout;
Packit Service e31359
  bool m_waitBeforeExit;
Packit Service e31359
  std::string m_testPath;
Packit Service e31359
Packit Service e31359
  typedef std::deque<CommandLinePlugInInfo> PlugIns;
Packit Service e31359
  PlugIns m_plugIns;
Packit Service e31359
Packit Service e31359
  typedef std::deque<std::string> Arguments;
Packit Service e31359
  Arguments m_arguments;
Packit Service e31359
  unsigned int m_currentArgument;
Packit Service e31359
Packit Service e31359
  std::string m_option;
Packit Service e31359
};
Packit Service e31359
Packit Service e31359
Packit Service e31359
#endif  // CPPUNIT_HELPER_COMMANDLINEPARSER_H