ImagingTools Core SDK
CApplicationInfoControllerComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <ilog/TLoggerCompWrap.h>
7
8// ImtCore includes
9#include <imtbase/IApplicationInfoController.h>
10
11
12namespace imtbase
13{
14
15
16class CApplicationInfoControllerComp:
17 public ilog::CLoggerComponentBase,
18 virtual public imtbase::IApplicationInfoController
19{
20public:
21 typedef ilog::CLoggerComponentBase BaseClass;
22
23 I_BEGIN_COMPONENT(CApplicationInfoControllerComp);
24 I_REGISTER_INTERFACE(ibase::IApplicationInfo);
25 I_REGISTER_INTERFACE(imtbase::IApplicationInfoController);
26 I_ASSIGN(m_versionInfoCompPtr, "VersionInfo", "Provide information about global application version and version of related packages", true, "VersionInfo");
27 I_END_COMPONENT;
28
29 // reimplemented (imtbase::IApplicationInfoController)
30 virtual void SetApplicationAttribute(ApplicationAttribute attributeId, const QString& attribute) override;
31
32 // reimplemented (ibase::IApplicationInfo)
33 virtual QString GetApplicationAttribute(int attributeId, bool allowTranslation = true) const override;
34 virtual int GetMainVersionId() const override;
35 virtual const iser::IVersionInfo& GetVersionInfo() const override;
36
37private:
38 mutable QMutex m_attributesMutex;
39 QMap<int, QString> m_attributes;
40
41private:
42 I_REF(iser::IVersionInfo, m_versionInfoCompPtr);
43};
44
45
46} // namespace imtbase
47
48