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