2015-11-10 23:47:14 +01:00
|
|
|
#ifndef CLIB_PROGRAM_MAIN_H
|
|
|
|
|
#define CLIB_PROGRAM_MAIN_H
|
|
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
2016-02-19 19:26:35 +01:00
|
|
|
namespace Pol
|
|
|
|
|
{
|
|
|
|
|
namespace Clib
|
|
|
|
|
{
|
2015-11-10 23:47:14 +01:00
|
|
|
class ProgramMain
|
|
|
|
|
{
|
|
|
|
|
public:
|
2016-02-19 19:26:35 +01:00
|
|
|
ProgramMain();
|
|
|
|
|
virtual ~ProgramMain();
|
2015-11-10 23:47:14 +01:00
|
|
|
|
2016-02-19 19:26:35 +01:00
|
|
|
void start( int argc, char* argv[] );
|
2015-11-10 23:47:14 +01:00
|
|
|
|
|
|
|
|
protected:
|
2016-02-19 19:26:35 +01:00
|
|
|
virtual int main() = 0;
|
|
|
|
|
virtual void showHelp() = 0;
|
2015-11-10 23:47:14 +01:00
|
|
|
|
2016-02-19 19:26:35 +01:00
|
|
|
const std::vector<std::string>& programArgs() const;
|
2016-12-14 17:05:34 +01:00
|
|
|
bool programArgsFind( const std::string& filter, std::string* rest = nullptr ) const;
|
2016-02-19 19:26:35 +01:00
|
|
|
std::string programArgsFindEquals( const std::string& filter, std::string defaultVal ) const;
|
|
|
|
|
int programArgsFindEquals( const std::string& filter, int defaultVal, bool hexVal ) const;
|
2015-11-10 23:47:14 +01:00
|
|
|
|
|
|
|
|
private:
|
2016-02-19 19:26:35 +01:00
|
|
|
std::vector<std::string> m_programArguments;
|
2015-11-10 23:47:14 +01:00
|
|
|
};
|
2016-02-19 19:26:35 +01:00
|
|
|
}
|
|
|
|
|
} // namespaces
|
2015-11-10 23:47:14 +01:00
|
|
|
|
2016-02-19 19:26:35 +01:00
|
|
|
#define PROG_MAIN Pol::Clib::ProgramMain
|
2015-11-10 23:47:14 +01:00
|
|
|
|
2016-02-19 19:26:35 +01:00
|
|
|
#endif // CLIB_PROGRAM_MAIN_H
|