ImagingTools Core SDK
CMultiStatusManagerComp.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 <istd/IInformationProvider.h>
7#include <icomp/CComponentBase.h>
8
9// ImtCore includes
10#include <imtbase/IMultiStatusManager.h>
11#include <imtbase/CCollectionInfo.h>
12
13
14namespace imtbase
15{
16
17
22 public icomp::CComponentBase,
23 virtual public IMultiStatusProvider,
24 virtual public IMultiStatusManager,
25 virtual public istd::IInformationProvider
26{
27public:
28 typedef icomp::CComponentBase BaseClass;
29
30 I_BEGIN_COMPONENT(CMultiStatusManagerComp);
31 I_REGISTER_INTERFACE(IInformationProvider);
32 I_REGISTER_INTERFACE(IMultiStatusProvider);
33 I_REGISTER_INTERFACE(IMultiStatusManager);
34 I_ASSIGN(m_defaultDescriptionAttrPtr, "DefaultDescription", "Default information description", false, "");
35 I_ASSIGN(m_defaultSourceAttrPtr, "DefaultSource", "Default information source", false, "");
36 I_ASSIGN_MULTI_0(m_informationProvidersCompPtr, "InformationProviders", "List of underlying information providers", true);
37 I_ASSIGN_MULTI_0(m_statusIdsAttrPtr, "InformationStatusIds", "Information status identifiers", true);
38 I_ASSIGN_MULTI_0(m_statusNamesAttrPtr, "InformationStatusNames", "Information status names", true);
39 I_ASSIGN_MULTI_0(m_statusDescriptionsAttrPtr, "InformationStatusDescriptions", "Information status descriptions", true);
40 I_END_COMPONENT;
41
42 // reimplemented (imtbase::IMultiStatusManager)
43 virtual void SetStatus(const QByteArray& statusId, const istd::IInformationProvider& status) override;
44
45 // reimplemented (imtbase::IMultiStatusProvider)
46 virtual const imtbase::ICollectionInfo& GetStatusList() const override;
47 virtual const istd::IInformationProvider* GetStatus(const QByteArray& id) const override;
48
49 // reimplemented (iinsp::IInformationProvider)
50 virtual QDateTime GetInformationTimeStamp() const override;
51 virtual InformationCategory GetInformationCategory() const override;
52 virtual int GetInformationId() const override;
53 virtual QString GetInformationDescription() const override;
54 virtual QString GetInformationSource() const override;
55 virtual int GetInformationFlags() const override;
56
57protected:
58 // reimplemented (icomp::CComponentBase)
59 virtual void OnComponentCreated() override;
60
61protected:
62 I_TEXTATTR(m_defaultDescriptionAttrPtr);
63 I_TEXTATTR(m_defaultSourceAttrPtr);
64 I_MULTIREF(istd::IInformationProvider, m_informationProvidersCompPtr);
65 I_MULTIATTR(QByteArray, m_statusIdsAttrPtr);
66 I_MULTITEXTATTR(m_statusNamesAttrPtr);
67 I_MULTITEXTATTR(m_statusDescriptionsAttrPtr);
68
69 imtbase::CCollectionInfo m_statusInfo;
70};
71
72
73} // namespace imtbase
74
75