10#include <iprm/COptionsManager.h>
13#include <imtbase/PluginInterface.h>
14#include <imtbase/TPluginManagerCompBase.h>
17#include <imthype/CJobQueueManagerCompBase.h>
18#include <imthype/ITaskParamsPlugin.h>
28class CPluginBasedJobQueueManagerComp:
29 public imtbase::TPluginManagerCompBase<
30 imthype::ITaskParamsPlugin,
31 IMT_CREATE_PLUGIN_FUNCTION(TaskParamSet),
32 IMT_DESTROY_PLUGIN_FUNCTION(TaskParamSet),
33 CJobQueueManagerCompBase>
35 using CJobQueueManagerCompBase::SendCriticalMessage;
37 typedef imtbase::TPluginManagerCompBase<
39 IMT_CREATE_PLUGIN_FUNCTION(TaskParamSet),
40 IMT_DESTROY_PLUGIN_FUNCTION(TaskParamSet),
41 CJobQueueManagerCompBase> BaseClass;
43 I_BEGIN_COMPONENT(CPluginBasedJobQueueManagerComp);
46 CPluginBasedJobQueueManagerComp();
49 virtual const iprm::IOptionsList* GetSupportedTasks()
const override;
50 virtual iprm::IParamsSetUniquePtr CreateJobParameters(
51 const QByteArray& contextId,
52 const QByteArray& taskTypeId,
53 const iprm::IParamsSet* defaultParamPtr)
const override;
57 virtual void OnPluginsCreated();
60 typedef QMap<QByteArray, imthype::ITaskParamsPlugin*> PluginsMap;
61 PluginsMap m_pluginsMap;
63 imod::TModelWrap<iprm::COptionsManager> m_taskParamsFactories;