Files
qt5-legatus-legacy/Lts/Common/LtsCommandLineParser/LtsCommandLineParser.h
2026-08-13 18:33:10 +02:00

61 lines
1.5 KiB
C++
Executable File

/**
* @RDE_HEADER@
* $Id$
* $HeadURL$
* $Author$
*/
#pragma once
#include <QCommandLineParser>
#include <LtsCommandLineParser/ltscommandlineparser_export.h>
class QUrl;
namespace LtsCommandLineParser
{
class LTSCOMMANDLINEPARSER_EXPORT LtsCommandLineParser : public QCommandLineParser
{
public:
enum ProvideCommandLineParameterOptions
{
None = 0x0000,
CreateDomainIdFromIp = 0x0001,
DomainId = 0x0002,
ExerciseId = 0x0004,
CustomConfigFile = 0x0008,
TcpConnectionUrl = 0x0010,
NoVersion = 0x0020
};
explicit LtsCommandLineParser(ProvideCommandLineParameterOptions opts = ProvideCommandLineParameterOptions(CreateDomainIdFromIp|DomainId|ExerciseId|CustomConfigFile));
virtual ~LtsCommandLineParser() = default;
int domainId() const;
void setDomainId(int id);
int exerciseId() const { return m_exerciseId; }
QString iniFile() const { return m_iniFile; }
bool iniFileSet() const;
bool useTcpConnection() const;
QUrl tcpConnectionUrl() const;
virtual bool init(bool bParseHelp = true);
void showHelp(int exitCode = 0);
bool domainIdProvided() const;
bool exerciseIdProvided() const;
void setUnitModuleTestMode(bool onOff) { m_unitModuleTestMode = onOff; }
protected:
QString m_additionalHelpStr;
private:
QFlags<ProvideCommandLineParameterOptions> m_enabledOptions;
int m_exerciseId{0};
int m_domainId{0};
int m_generatedDomainId{0};
bool m_domainIdSetByFunction{false};
bool m_unitModuleTestMode{false};
QString m_iniFile;
};
} // namespace Common