/** * @file main/CLI/main.h * @brief The main eVaf CLI application class * * Copyright (c) 2011 Enar Vaikene * * This file is part of the eVaf C++ cross-platform application development framework. * * This file can be used under the terms of the GNU General Public License * version 3.0 as published by the Free Software Foundation and appearing in * the file LICENSE included in the packaging of this file. Please review the * the following information to ensure the GNU General Public License version * 3.0 requirements will be met: http://www.gnu.org/copyleft/gpl.html. * * Alternatively, this file may be used in accordance with the Commercial License * Agreement provided with the Software. */ #ifndef __CLI_MAIN_H # define __CLI_MAIN_H #include namespace eVaf { /** * The main eVaf command line interface (CLI) application. * * eVafGUI is the main CLI executable. It provides an empty CLI application * that is used to load other eVaf modules. */ namespace CLI { /** * Internal implementation of the main eVaf CLI application. */ namespace Internal { } // namespace eVaf::CLI::Internal /** * The main eVaf CLI application class */ class Application : public QCoreApplication { Q_OBJECT public: Application(int & argc, char ** argv); virtual ~Application(); public: // Static methods /** * Processes command-line arguments * @param argc Number of command-line arguments * @param argv List of command-line arguments * @return True if ok; false if the application should terminate * * This function processes command-line arguments and should be called before running * the application. */ static bool processCommandLine(int argc, char ** argv); /** * Prints out help for command-line arguments. */ static void printHelp(); /** * Prints out help for Qt command-line arguments. */ static void printQtHelp(); /** * Prints out version information. */ static void printVersion(); }; } // namespace eVaf::CLI } // namespace eVaf #endif // main.h