6#include <QtCore/QReadWriteLock>
7#include <QtCore/QObject>
11#include <iprm/IParamsSet.h>
12#include <iprm/IOptionsList.h>
13#include <ilog/TLoggerCompWrap.h>
16#include <imtbase/IObjectCollection.h>
19#include <imthype/IJobQueueManager.h>
20#include <imthype/IJobTicket.h>
21#include <imthype/IJobStatus.h>
22#include <imthype/CStandardJobOutput.h>
29class CJobQueueManagerCompBase:
31 public ilog::CLoggerComponentBase,
32 virtual public IJobQueueManager
36 typedef ilog::CLoggerComponentBase BaseClass;
38 I_BEGIN_BASE_COMPONENT(CJobQueueManagerCompBase);
39 I_REGISTER_INTERFACE(IJobQueueManager);
40 I_ASSIGN(m_jobTicketsCollectionCompPtr,
"JobTicketsCollection",
"External object collection containing job tickets",
true,
"JobTicketsCollection");
43 CJobQueueManagerCompBase();
46 virtual QByteArray GetTaskTypeId(
const QByteArray& jobId)
const override;
47 virtual QByteArray InsertNewJobIntoQueue(
48 const QByteArray& contextId,
49 const QByteArray& typeId,
51 const iprm::IParamsSet* jobProcessingParamsPtr,
52 const IJobSchedulerParams* schedulerParamsPtr =
nullptr,
53 ilog::IMessageConsumer* logPtr =
nullptr)
override;
54 virtual bool CancelJob(
const QByteArray& jobId)
override;
55 virtual bool ResumeJob(
const QByteArray& jobId)
override;
56 virtual bool RemoveJob(
const QByteArray& jobId)
override;
57 virtual bool GetJobConfiguration(
58 const QByteArray& jobId,
59 ParamsPtr& processingParamsPtr,
61 virtual ProcessingStatus GetProcessingStatus(
const QByteArray& jobId)
const override;
62 virtual bool SetProcessingStatus(
const QByteArray& jobId,
ProcessingStatus status)
override;
63 virtual double GetProgress(
const QByteArray& jobId)
const override;
64 virtual bool SetProgress(
const QByteArray & jobId,
double progress)
override;
65 virtual bool GetJobResult(
const QByteArray& jobId, IJobOutput& result)
const override;
66 virtual bool SetJobResult(
const QByteArray & jobId,
const IJobOutput & result)
override;
69 virtual int GetElementsCount(
70 const iprm::IParamsSet* selectionParamPtr =
nullptr,
71 ilog::IMessageConsumer* logPtr =
nullptr)
const override;
72 virtual Ids GetElementIds(
75 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
76 ilog::IMessageConsumer* logPtr =
nullptr)
const override;
77 virtual bool GetSubsetInfo(
81 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
82 ilog::IMessageConsumer* logPtr =
nullptr)
const override;
83 virtual QVariant GetElementInfo(
const QByteArray& elementId,
int infoType, ilog::IMessageConsumer* logPtr =
nullptr)
const override;
84 virtual idoc::MetaInfoPtr GetElementMetaInfo(
const Id& elementId, ilog::IMessageConsumer* logPtr =
nullptr)
const override;
85 virtual bool SetElementName(
const Id& elementId,
const QString& name, ilog::IMessageConsumer* logPtr =
nullptr)
override;
86 virtual bool SetElementDescription(
const Id& elementId,
const QString& description, ilog::IMessageConsumer* logPtr =
nullptr)
override;
87 virtual bool SetElementEnabled(
const Id& elementId,
bool isEnabled =
true, ilog::IMessageConsumer* logPtr =
nullptr)
override;
90 IJobTicketSharedPtr GetJobTicket(
const QByteArray& jobId)
const;
91 IJobStatusSharedPtr GetJobStatus(
const QByteArray& jobId)
const;
94 virtual void OnComponentCreated()
override;
95 virtual void OnComponentDestroyed()
override;
100 mutable QReadWriteLock m_mutex;
104 mutable QHash<QByteArray, IJobStatusSharedPtr> m_jobStatusMap;