#pragma once #include #include 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 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; }; }