9#include <imtbase/PluginInterface.h>
10#include <imtbase/TPluginManagerCompBase.h>
13#include <imthype/CTaskCollectionCompBase.h>
14#include <imthype/ITaskPlugin.h>
24class CPluginBasedTaskCollectionComp:
25 public imtbase::TPluginManagerCompBase<
27 IMT_CREATE_PLUGIN_FUNCTION(Task),
28 IMT_DESTROY_PLUGIN_FUNCTION(Task),
29 CTaskCollectionCompBase>,
32 using CTaskCollectionCompBase::SendCriticalMessage;
34 typedef imtbase::TPluginManagerCompBase<
36 IMT_CREATE_PLUGIN_FUNCTION(Task),
37 IMT_DESTROY_PLUGIN_FUNCTION(Task),
38 CTaskCollectionCompBase> BaseClass;
40 I_BEGIN_COMPONENT(CPluginBasedTaskCollectionComp);
44 CPluginBasedTaskCollectionComp();
47 virtual QString GetTaskTypeName(
const QByteArray& taskTypeId)
const override;
50 virtual const iprm::IOptionsList* GetObjectTypesInfo()
const override;
54 virtual iinsp::ISupplierUniquePtr CreateTaskInstance(
const QByteArray& taskTypeId)
const override;
57 virtual void OnPluginsCreated();
60 typedef QMap<QByteArray, imthype::ITaskPlugin*> PluginsMap;
61 PluginsMap m_pluginsMap;
63 imod::TModelWrap<iprm::COptionsManager> m_taskFactories;