ACF $AcfVersion:0$
CApplicationInfoComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
6#include <iser/IVersionInfo.h>
9
10
11namespace ibase
12{
13
14
20 virtual public ibase::IApplicationInfo,
21 virtual protected iser::IVersionInfo
22{
23public:
25
26 I_BEGIN_COMPONENT(CApplicationInfoComp);
27 I_REGISTER_INTERFACE(ibase::IApplicationInfo);
28 I_ASSIGN(m_companyNameAttrPtr, "CompanyName", "Company name", false, "<my company>");
29 I_ASSIGN(m_productNameAttrPtr, "ProductName", "Product name, the same for all applications in one product", false, "<my product>");
30 I_ASSIGN(m_productEditionAttrPtr, "ProductEdition", "Product edition", false, "");
31 I_ASSIGN(m_applicationIdAttrPtr, "ApplicationId", "Application-ID", true, "ApplicationId");
32 I_ASSIGN(m_applicationNameAttrPtr, "ApplicationName", "Application name", false, "ACF Application");
33 I_ASSIGN(m_applicationSubnameAttrPtr, "ApplicationSubname", "Sub-name of application", false, "");
34 I_ASSIGN(m_applicationTypeAttrPtr, "ApplicationType", "Application type", false, "Server");
35 I_ASSIGN(m_legalCopyrightAttrPtr, "LegalCopyright", "Legal copyright of this application", false, "\x00A9 xxxx <my company>");
36 I_ASSIGN(m_mainVersionIdAttrPtr, "MainVersionId", "ID of main module version as defined in version info", false, 0);
37 I_ASSIGN(m_versionInfoCompPtr, "VersionInfo", "Provide information about global application version and version of related packages", true, "VersionInfo");
38 I_END_COMPONENT;
39
40 // reimplemented (ibase::IApplicationInfo)
41 virtual QString GetApplicationAttribute(int attributeId, bool allowTranslation = true) const override;
42 virtual int GetMainVersionId() const override;
43 virtual const iser::IVersionInfo& GetVersionInfo() const override;
44
45protected:
46 // reimplemented (iser::IVersionInfo)
47 virtual bool GetVersionNumber(int versionId, quint32& result) const override;
48 virtual QString GetVersionIdDescription(int versionId) const override;
49 virtual VersionIds GetVersionIds() const override;
50 virtual QString GetEncodedVersionName(int versionId, quint32 versionNumber) const override;
51
52private:
53 I_TEXTATTR(m_companyNameAttrPtr);
54 I_TEXTATTR(m_productNameAttrPtr);
55 I_TEXTATTR(m_productEditionAttrPtr);
56 I_ATTR(QByteArray, m_applicationIdAttrPtr);
57 I_TEXTATTR(m_applicationNameAttrPtr);
58 I_TEXTATTR(m_applicationSubnameAttrPtr);
59 I_TEXTATTR(m_applicationTypeAttrPtr);
60 I_TEXTATTR(m_legalCopyrightAttrPtr);
61 I_ATTR(int, m_mainVersionIdAttrPtr);
62 I_REF(iser::IVersionInfo, m_versionInfoCompPtr);
63};
64
65
66} // namespace ibase
67
68
Component for providing of application info such as program name, type, copyright text etc.
virtual VersionIds GetVersionIds() const override
Get list of version ID's.
virtual QString GetEncodedVersionName(int versionId, quint32 versionNumber) const override
Encode version number to human readable form.
icomp::CComponentBase BaseClass
virtual int GetMainVersionId() const override
Get ID of main module version ID for iser::IVersionInfo.
virtual const iser::IVersionInfo & GetVersionInfo() const override
Get access to application version info.
virtual QString GetVersionIdDescription(int versionId) const override
Get description of version ID.
virtual bool GetVersionNumber(int versionId, quint32 &result) const override
Get version of archived stream for specific versioning type.
virtual QString GetApplicationAttribute(int attributeId, bool allowTranslation=true) const override
Get value of application attribute.
This interface provides some information about the application.
Base class for component implementation.
Provides access to version information.
QSet< int > VersionIds
#define I_TEXTATTR(member)
Declare translatable text attribute member.
This namespace contains basic implementations of standard primitives on the component level.