9#include <imtbase/PluginInterface.h>
10#include <imtbase/TPluginManagerCompBase.h>
13#include <imthype/CJobExecutionControllerCompBase.h>
14#include <imthype/IJobProcessorPlugin.h>
24class CPluginBasedJobExecutionComp:
25 public imtbase::TPluginManagerCompBase<
26 imthype::IJobProcessorPlugin,
27 IMT_CREATE_PLUGIN_FUNCTION(JobProcessor),
28 IMT_DESTROY_PLUGIN_FUNCTION(JobProcessor),
29 CJobExecutionControllerCompBase>
31 using CJobExecutionControllerCompBase::SendCriticalMessage;
33 typedef imtbase::TPluginManagerCompBase<
35 IMT_CREATE_PLUGIN_FUNCTION(JobProcessor),
36 IMT_DESTROY_PLUGIN_FUNCTION(JobProcessor),
37 CJobExecutionControllerCompBase> BaseClass;
39 I_BEGIN_COMPONENT(CPluginBasedJobExecutionComp);
42 CPluginBasedJobExecutionComp();
46 virtual const IJobProcessor* GetTaskProcessor(
const QByteArray& workerTypeId)
const override;
49 virtual void OnPluginsCreated();
52 typedef QMap<QByteArray, imthype::IJobProcessorPlugin*> PluginsMap;
53 PluginsMap m_pluginsMap;
55 typedef IJobProcessorSharedPtr JobProcessorPtr;
56 typedef QMap<QByteArray, JobProcessorPtr> JobProcessorMap;
58 mutable JobProcessorMap m_jobProcessorMap;