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