ImagingTools Core SDK
CTaskResultCollectionComp.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// ImtCore includes
6#include <imtbase/CObjectCollectionComp.h>
7
8// Acula includes
9#include <imthype/ITaskResultCollection.h>
10
11
12namespace imthype
13{
14
15
16class CTaskResultCollectionComp:
18 virtual public ITaskResultCollection
19{
20public:
21 typedef imtbase::CObjectCollectionComp BaseClass;
22
23 I_BEGIN_COMPONENT(CTaskResultCollectionComp);
24 I_REGISTER_INTERFACE(imthype::ITaskResultCollection);
25 I_END_COMPONENT;
26
27 // reimplemented (ITaskResultCollection)
28 virtual void SetArtifactType(const QByteArray& artifactId, ArtifactType artifactType) override;
29 virtual void SetArtifactStatus(const QByteArray& artifactId, istd::IInformationProvider::InformationCategory status) override;
30 virtual QByteArray InsertNewResult(
31 ArtifactType artifactType,
32 const QByteArray& typeId,
33 const QString& name,
34 const QString& description,
35 const istd::IInformationProvider* statusProviderPtr = nullptr,
36 const istd::IChangeable* defaultValuePtr = nullptr) override;
37
38 // reimplemented (ITaskMetaInfo)
39 virtual ArtifactType GetArtifactType(const QByteArray& artifactId) const override;
40 virtual QByteArray GetArtifactDataTypeId(const QByteArray& artifactId) const override;
41
42 // reimplemented (imtbase::IMultiStatusProvider)
43 virtual const imtbase::ICollectionInfo& GetStatusList() const override;
44 virtual const istd::IInformationProvider* GetStatus(const QByteArray& statusId) const override;
45
46 // reimplemented (imtbase::IObjectCollection)
47 virtual Id InsertNewObject(
48 const QByteArray& typeId,
49 const QString& name,
50 const QString& description,
51 const istd::IChangeable* defaultValuePtr = nullptr,
52 const Id& proposedElementId = Id(),
53 const idoc::IDocumentMetaInfo* dataMetaInfoPtr = nullptr,
54 const idoc::IDocumentMetaInfo* elementMetaInfoPtr = nullptr,
55 const imtbase::IOperationContext* operationContextPtr = nullptr) override;
56
57 // reimplemented (istd::IChangeable)
58 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
59
60protected:
61 struct ResultInfo: virtual public istd::IInformationProvider
62 {
63 ResultInfo()
64 :artifactType(AT_NONE),
65 status(istd::IInformationProvider::IC_NONE)
66 {
67 }
68
69 // reimplemented (istd::IInformationProvider)
70 virtual QDateTime GetInformationTimeStamp() const override;
71 virtual InformationCategory GetInformationCategory() const override;
72 virtual int GetInformationId() const override;
73 virtual QString GetInformationDescription() const override;
74 virtual QString GetInformationSource() const override;
75 virtual int GetInformationFlags() const override;
76
77 ArtifactType artifactType;
78 istd::IInformationProvider::InformationCategory status;
79 QString statusText;
80 QDateTime statusTimestamp;
81 QByteArray dataTypeId;
82 };
83
84 typedef QMap<QByteArray, ResultInfo> ResultInfoMap;
85 ResultInfoMap m_resultInfoMap;
86};
87
88
89} // namespace imthype
90
91