ImagingTools Core SDK
TTaskPluginComponentImpl.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/TBasePluginComponentImpl.h>
7
8// Acula includes
9#include <imthype/ITaskPlugin.h>
10
11
12namespace imthype
13{
14
15
19template <class ComponentClass>
20class TTaskPluginComponentImpl: public imtbase::TBasePluginComponentImpl<ComponentClass, ITaskPlugin>
21{
22public:
23 typedef imtbase::TBasePluginComponentImpl<ComponentClass, ITaskPlugin> BaseClass;
24
25 TTaskPluginComponentImpl(const QString& pluginName, const QByteArray& typeId);
26
27 // reimplemented (ITaskPlugin)
28 virtual const ITaskPlugin::ISupplierFactory* GetTaskFactory() const override;
29};
30
31
32// public methods
33template <class ComponentClass>
34TTaskPluginComponentImpl<ComponentClass>::TTaskPluginComponentImpl(const QString& pluginName, const QByteArray& typeId)
35 :BaseClass(pluginName, typeId)
36{
37}
38
39
40// reimplemented (ITaskPlugin)
41
42template <class ComponentClass>
43const ITaskPlugin::ISupplierFactory* TTaskPluginComponentImpl<ComponentClass>::GetTaskFactory() const
44{
45 return BaseClass::m_component.template GetInterface<ITaskPlugin::ISupplierFactory>(QByteArray());
46}
47
48
49} // namespace imthype
50
51