summaryrefslogtreecommitdiffstats
path: root/src/core/jobs/qaspectjobmanager_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/jobs/qaspectjobmanager_p.h')
-rw-r--r--src/core/jobs/qaspectjobmanager_p.h29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/core/jobs/qaspectjobmanager_p.h b/src/core/jobs/qaspectjobmanager_p.h
index 4d6e1feb3..1264bb52b 100644
--- a/src/core/jobs/qaspectjobmanager_p.h
+++ b/src/core/jobs/qaspectjobmanager_p.h
@@ -38,9 +38,11 @@
#define QT3D_QASPECTJOBMANAGER_P_H
#include <private/qabstractaspectjobmanager_p.h>
+#include <Qt3DCore/private/qt3dcore_global_p.h>
-#include "qthreadpooler_p.h"
-#include "dependencyhandler_p.h"
+#include <Qt3DCore/qaspectjob.h>
+
+#include <QVector>
#ifdef THREAD_WEAVER
namespace ThreadWeaver {
@@ -52,26 +54,35 @@ QT_BEGIN_NAMESPACE
namespace Qt3D {
-class QAspectJobManager;
+class QThreadPooler;
+class DependencyHandler;
-class QAspectJobManagerPrivate : public QAbstractAspectJobManagerPrivate
+class QT3DCORE_PRIVATE_EXPORT QAspectJobManager : public QAbstractAspectJobManager
{
+ Q_OBJECT
public:
- QAspectJobManagerPrivate();
- ~QAspectJobManagerPrivate();
+ explicit QAspectJobManager(QObject *parent = 0);
+ ~QAspectJobManager();
+
+ void initialize() Q_DECL_OVERRIDE;
+
+ void enqueueJobs(const QVector<QAspectJobPtr> &jobQueue) Q_DECL_OVERRIDE;
+
+ void waitForAllJobs() Q_DECL_OVERRIDE;
- Q_DECLARE_PUBLIC(QAspectJobManager)
+ void waitForPerThreadFunction(JobFunction func, void *arg) Q_DECL_OVERRIDE;
+private:
#ifdef THREAD_WEAVER
// Owned by QAspectJobManager via QObject parent-child
ThreadWeaver::Queue *m_weaver;
#endif
QThreadPooler *m_threadPooler;
- DependencyHandler *m_dependencyHandler;
+ QScopedPointer<DependencyHandler> m_dependencyHandler;
};
-} // Qt3D
+} // namespace Qt3D
QT_END_NAMESPACE