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