diff options
author | Paul Lemire <paul.lemire@epitech.eu> | 2014-02-10 22:00:54 +0100 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2014-02-26 12:47:42 +0100 |
commit | 4f489c2b564c9284f4cdf27f96f17084fc9bab1b (patch) | |
tree | 453706c8af7dc1a9b28a8f2aff64a4b922a2a26a /src/core/jobs | |
parent | 2a9a67d1b1798128a40d65c9cb18399e28d46fcd (diff) |
Separated sources in subfolders so as to have a clearer view of the code
Change-Id: I1f3d030310bd93e0919c94c75cea79461d05e0f2
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/core/jobs')
-rw-r--r-- | src/core/jobs/jobs.pri | 14 | ||||
-rw-r--r-- | src/core/jobs/qjob.cpp | 59 | ||||
-rw-r--r-- | src/core/jobs/qjob.h | 71 | ||||
-rw-r--r-- | src/core/jobs/qjobmanager.cpp | 133 | ||||
-rw-r--r-- | src/core/jobs/qjobmanager.h | 101 | ||||
-rw-r--r-- | src/core/jobs/qjobmanagerinterface.h | 70 | ||||
-rw-r--r-- | src/core/jobs/qjobproviderinterface.h | 60 | ||||
-rw-r--r-- | src/core/jobs/weaverjob.cpp | 56 | ||||
-rw-r--r-- | src/core/jobs/weaverjob_p.h | 62 |
9 files changed, 626 insertions, 0 deletions
diff --git a/src/core/jobs/jobs.pri b/src/core/jobs/jobs.pri new file mode 100644 index 000000000..a644f5e80 --- /dev/null +++ b/src/core/jobs/jobs.pri @@ -0,0 +1,14 @@ + +SOURCES += \ + $$PWD/qjob.cpp \ + $$PWD/qjobmanager.cpp \ + $$PWD/weaverjob.cpp + +HEADERS += \ + $$PWD/qjob.h \ + $$PWD/qjobmanager.h \ + $$PWD/qjobmanagerinterface.h \ + $$PWD/qjobproviderinterface.h \ + $$PWD/weaverjob_p.h + +INCLUDEPATH += $$PWD diff --git a/src/core/jobs/qjob.cpp b/src/core/jobs/qjob.cpp new file mode 100644 index 000000000..73dfabfe2 --- /dev/null +++ b/src/core/jobs/qjob.cpp @@ -0,0 +1,59 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qjob.h" + +namespace Qt3D { + +QJob::QJob() +{ +} + +QJob::~QJob() +{ +} + +void QJob::addDependency(QWeakPointer<QJob> dependency) +{ + m_dependencies.append(dependency); +} + +} // namespace Qt3D diff --git a/src/core/jobs/qjob.h b/src/core/jobs/qjob.h new file mode 100644 index 000000000..c49907538 --- /dev/null +++ b/src/core/jobs/qjob.h @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3D_QJOB_H +#define QT3D_QJOB_H + +#include "qt3dcore_global.h" + +#include <QSharedPointer> +#include <QVector> + +namespace Qt3D { + +class QJob +{ +public: + QJob(); + virtual ~QJob(); + + void addDependency(QWeakPointer<QJob> dependency); + const QVector<QWeakPointer<QJob> > &dependencies() const { return m_dependencies; } + + virtual void run() = 0; + +private: + QVector<QWeakPointer<QJob> > m_dependencies; +}; + +typedef QSharedPointer<QJob> QJobPtr; + +} // namespace Qt3D + +#endif // QT3D_QJOB_H diff --git a/src/core/jobs/qjobmanager.cpp b/src/core/jobs/qjobmanager.cpp new file mode 100644 index 000000000..f8fab698b --- /dev/null +++ b/src/core/jobs/qjobmanager.cpp @@ -0,0 +1,133 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qjobmanager.h" + +#include "weaverjob_p.h" + +#include <threadweaver.h> +#include <dependencypolicy.h> +#include <thread.h> + +#include <QAtomicInt> +#include <QDebug> +#include <QThread> + +namespace Qt3D { + +QJobManager::QJobManager(QObject *parent) + : QJobManagerInterface(parent) + , m_weaver(new ThreadWeaver::Queue(this)) +{ + m_weaver->setMaximumNumberOfThreads(QThread::idealThreadCount()); +} + +void QJobManager::initialize() +{ +} + +void QJobManager::enqueueJobs(const QVector<QJobPtr> &jobQueue) +{ + // Convert QJobs to ThreadWeaver::Jobs + QHash<QJob *, QSharedPointer<WeaverJob> > jobsMap; + Q_FOREACH (const QJobPtr &job, jobQueue) { + QSharedPointer<WeaverJob> weaverJob(new WeaverJob); + weaverJob->m_job = job; + jobsMap.insert(job.data(), weaverJob); + } + + // Resolve dependencies + Q_FOREACH (const QJobPtr &job, jobQueue) { + const QVector<QWeakPointer<QJob> > &deps = job->dependencies(); + + Q_FOREACH (const QWeakPointer<QJob> &dep, deps) { + QSharedPointer<WeaverJob> weaverDep = jobsMap.value(dep.data()); + + if (weaverDep) { + ThreadWeaver::DependencyPolicy &dependencyPolicy = ThreadWeaver::DependencyPolicy::instance(); + QSharedPointer<WeaverJob> weaverJob = jobsMap.value(job.data()); + dependencyPolicy.addDependency(weaverJob, weaverDep); + } + } + } + + Q_FOREACH (const QJobPtr &job, jobQueue) { + QSharedPointer<WeaverJob> weaverJob = jobsMap.value(job.data()); + m_weaver->enqueue(weaverJob); + } +} + +void QJobManager::waitForAllJobs() +{ + m_weaver->finish(); +} + +void QJobManager::SynchronizedJob::run(ThreadWeaver::JobPointer self, ThreadWeaver::Thread *thread) +{ + Q_UNUSED(self); + Q_CHECK_PTR(m_func); + Q_CHECK_PTR(thread); + + // Call the function + m_func(m_arg); + + // Decrement the atomic counter to let others know we've done our bit + m_atomicCount->deref(); + + // Wait for the other worker threads to be done + while (m_atomicCount->load() > 0) + thread->yieldCurrentThread(); +} + +void QJobManager::waitForPerThreadFunction(JobFunction func, void *arg) +{ + const int threadCount = m_weaver->maximumNumberOfThreads(); + QAtomicInt atomicCount(threadCount); + + for (int i = 0; i < threadCount; ++i) { + QJobManager::SynchronizedJobPtr syncJob(new QJobManager::SynchronizedJob(func, arg, &atomicCount)); + m_weaver->enqueue(syncJob); + } + + m_weaver->finish(); +} + +} // namespace Qt3D diff --git a/src/core/jobs/qjobmanager.h b/src/core/jobs/qjobmanager.h new file mode 100644 index 000000000..a5f4e7b27 --- /dev/null +++ b/src/core/jobs/qjobmanager.h @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3D_QJOBMANAGER_H +#define QT3D_QJOBMANAGER_H + +#include "qjobmanagerinterface.h" +#include "qt3dcore_global.h" + +#include "qjob.h" + +#include <job.h> + +#include <QVector> + +namespace ThreadWeaver { +class Queue; +} + +namespace Qt3D { + +class QJobManager : public QJobManagerInterface +{ + Q_OBJECT +public: + explicit QJobManager(QObject *parent = 0); + + void initialize() Q_DECL_OVERRIDE; + + void enqueueJobs(const QVector<QJobPtr> &jobQueue) Q_DECL_OVERRIDE; + + void waitForAllJobs() Q_DECL_OVERRIDE; + + void waitForPerThreadFunction(JobFunction func, void *arg) Q_DECL_OVERRIDE; + +protected: + class SynchronizedJob : public ThreadWeaver::Job + { + public: + SynchronizedJob(JobFunction func, void *arg, QAtomicInt *atomicCount) + : m_func(func) + , m_arg(arg) + , m_atomicCount(atomicCount) + {} + + protected: + void run(ThreadWeaver::JobPointer self, ThreadWeaver::Thread *thread) Q_DECL_OVERRIDE; + + private: + JobFunction m_func; + void *m_arg; + QAtomicInt *m_atomicCount; + }; + + typedef QSharedPointer<SynchronizedJob> SynchronizedJobPtr; + +private: + ThreadWeaver::Queue *m_weaver; +}; + +} // namespace Qt3D + +#endif // QT3D_QJOBMANAGER_H diff --git a/src/core/jobs/qjobmanagerinterface.h b/src/core/jobs/qjobmanagerinterface.h new file mode 100644 index 000000000..a003d1198 --- /dev/null +++ b/src/core/jobs/qjobmanagerinterface.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QJOBMANAGERINTERFACE_H +#define QJOBMANAGERINTERFACE_H + +#include <QObject> + +#include "qjob.h" + +namespace Qt3D { + +class QJobManagerInterface : public QObject +{ + Q_OBJECT +public: + explicit QJobManagerInterface(QObject *parent = 0) + : QObject(parent) + {} + + virtual void initialize() {} + virtual void enqueueJobs(const QVector<QJobPtr> &jobQueue) = 0; + virtual void waitForAllJobs() = 0; + + // Callback signature for running SynchronizedJobs + typedef void (*JobFunction)(void *); + virtual void waitForPerThreadFunction(JobFunction func, void *arg) = 0; +}; + +} // namespace Qt3D + +#endif // QJOBMANAGERINTERFACE_H diff --git a/src/core/jobs/qjobproviderinterface.h b/src/core/jobs/qjobproviderinterface.h new file mode 100644 index 000000000..891e44fff --- /dev/null +++ b/src/core/jobs/qjobproviderinterface.h @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3D_QJOBPROVIDERINTERFACE_H +#define QT3D_QJOBPROVIDERINTERFACE_H + +#include "qt3dcore_global.h" +#include "qjob.h" + +#include <QVector> + +namespace Qt3D { + +class QJobProviderInterface +{ +public: + virtual QVector<QJobPtr> jobsToExecute() = 0; +}; + +} + +#endif // QT3D_QJOBPROVIDERINTERFACE_H diff --git a/src/core/jobs/weaverjob.cpp b/src/core/jobs/weaverjob.cpp new file mode 100644 index 000000000..c3b41e745 --- /dev/null +++ b/src/core/jobs/weaverjob.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "weaverjob_p.h" + +namespace Qt3D { + +WeaverJob::WeaverJob() +{ +} + +void WeaverJob::run(ThreadWeaver::JobPointer self, ThreadWeaver::Thread *thread) +{ + if (m_job) + m_job->run(); +} + +} // namespace Qt3D diff --git a/src/core/jobs/weaverjob_p.h b/src/core/jobs/weaverjob_p.h new file mode 100644 index 000000000..5f93ac3cc --- /dev/null +++ b/src/core/jobs/weaverjob_p.h @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QT3D_WEAVERJOB_H +#define QT3D_WEAVERJOB_H + +#include <job.h> +#include "qjob.h" + +namespace Qt3D { + +class WeaverJob : public ThreadWeaver::Job +{ +public: + WeaverJob(); + + void run(ThreadWeaver::JobPointer self, ThreadWeaver::Thread *thread) Q_DECL_OVERRIDE; + + QJobPtr m_job; +}; + +} // namespace Qt3D + +#endif // QT3D_WEAVERJOB_H |