ImagingTools Core SDK
CPluginStatusMonitor.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/IPluginStatusMonitor.h>
7#include <imtbase/TAggergatedObjectCollectionWrap.h>
8
9// ImtCore includes
10#include <imtbase/CSimpleStatus.h>
11
12
13namespace imtbase
14{
15
16
17class CPluginStatusMonitor:
18 public TAggergatedObjectCollectionWrap<IPluginStatusMonitor, CSimpleStatus>
19{
20public:
21 typedef TAggergatedObjectCollectionWrap<IPluginStatusMonitor, CSimpleStatus> BaseClass;
22
23 CPluginStatusMonitor();
24
25 // reimplemented (imtbase::IPluginMonitor)
26 virtual QByteArray GetPluginTypeId(const QByteArray& id) const override;
27 virtual void OnPluginStatusChanged(
28 const QString& pluginPath,
29 const QString& pluginName,
30 const QByteArray& pluginTypeId,
31 istd::IInformationProvider::InformationCategory category,
32 const QString& statusMessage) override;
33
34 // reimplemented (imtbase::IMultiStatusProvider)
35 virtual const imtbase::ICollectionInfo& GetStatusList() const override;
36 virtual const istd::IInformationProvider* GetStatus(const QByteArray& pluginId) const override;
37
38private:
39 QMap<QByteArray, QByteArray> m_pluginTypeIds;
40};
41
42
43} // namespace imtbase
44
45