diff --git a/libs/qtconcurrent/QtConcurrentTools b/libs/qtconcurrent/QtConcurrentTools deleted file mode 100644 index b8c36c1dd86b92c84fb780c60e5b6f58b0c32f0d..0000000000000000000000000000000000000000 --- a/libs/qtconcurrent/QtConcurrentTools +++ /dev/null @@ -1,31 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** Commercial Usage -** -** Licensees holding valid Qt Commercial licenses may use this file in -** accordance with the Qt Commercial License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Nokia. -** -** 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. -** -** If you are unsure which license is appropriate for your use, please -** contact the sales department at http://qt.nokia.com/contact. -** -**************************************************************************/ - -#include "qtconcurrent/multitask.h" -#include "qtconcurrent/runextensions.h" diff --git a/libs/qtconcurrent/multitask.h b/libs/qtconcurrent/multitask.h deleted file mode 100644 index 18a748c0e1d637b3409593544602c37ed54061f4..0000000000000000000000000000000000000000 --- a/libs/qtconcurrent/multitask.h +++ /dev/null @@ -1,196 +0,0 @@ -/** - ****************************************************************************** - * - * @file multitask.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef MULTITASK_H -#define MULTITASK_H - -#include "qtconcurrent_global.h" -#include "runextensions.h" - -#include -#include -#include -#include -#include -#include - -#include - -QT_BEGIN_NAMESPACE - -namespace QtConcurrent { - -class QTCONCURRENT_EXPORT MultiTaskBase : public QObject, public QRunnable -{ - Q_OBJECT -protected slots: - virtual void cancelSelf() = 0; - virtual void setFinished() = 0; - virtual void setProgressRange(int min, int max) = 0; - virtual void setProgressValue(int value) = 0; - virtual void setProgressText(QString value) = 0; -}; - -template -class MultiTask : public MultiTaskBase -{ -public: - MultiTask(void (Class::*fn)(QFutureInterface &), const QList &objects) - : fn(fn), - objects(objects) - { - maxProgress = 100*objects.size(); - } - - QFuture future() - { - futureInterface.reportStarted(); - return futureInterface.future(); - } - - void run() - { - QThreadPool::globalInstance()->releaseThread(); - futureInterface.setProgressRange(0, maxProgress); - foreach (Class *object, objects) { - QFutureWatcher *watcher = new QFutureWatcher(); - watchers.insert(object, watcher); - finished.insert(watcher, false); - connect(watcher, SIGNAL(finished()), this, SLOT(setFinished())); - connect(watcher, SIGNAL(progressRangeChanged(int,int)), this, SLOT(setProgressRange(int,int))); - connect(watcher, SIGNAL(progressValueChanged(int)), this, SLOT(setProgressValue(int))); - connect(watcher, SIGNAL(progressTextChanged(QString)), this, SLOT(setProgressText(QString))); - watcher->setFuture(QtConcurrent::run(fn, object)); - } - selfWatcher = new QFutureWatcher(); - connect(selfWatcher, SIGNAL(canceled()), this, SLOT(cancelSelf())); - selfWatcher->setFuture(futureInterface.future()); - loop = new QEventLoop; - loop->exec(); - futureInterface.reportFinished(); - QThreadPool::globalInstance()->reserveThread(); - qDeleteAll(watchers.values()); - delete selfWatcher; - delete loop; - } -protected: - void cancelSelf() - { - foreach (QFutureWatcher *watcher, watchers) - watcher->future().cancel(); - } - - void setFinished() - { - updateProgress(); - QFutureWatcher *watcher = static_cast *>(sender()); - if (finished.contains(watcher)) - finished[watcher] = true; - bool allFinished = true; - const QList finishedValues = finished.values(); - foreach (bool isFinished, finishedValues) { - if (!isFinished) { - allFinished = false; - break; - } - } - if (allFinished) - loop->quit(); - } - - void setProgressRange(int min, int max) - { - Q_UNUSED(min) - Q_UNUSED(max) - updateProgress(); - } - - void setProgressValue(int value) - { - Q_UNUSED(value) - updateProgress(); - } - - void setProgressText(QString value) - { - Q_UNUSED(value) - updateProgressText(); - } -private: - void updateProgress() - { - int progressSum = 0; - const QList *> watchersValues = watchers.values(); - foreach (QFutureWatcher *watcher, watchersValues) { - if (watcher->progressMinimum() == watcher->progressMaximum()) { - if (watcher->future().isFinished() && !watcher->future().isCanceled()) - progressSum += 100; - } else { - progressSum += 100*(watcher->progressValue()-watcher->progressMinimum())/(watcher->progressMaximum()-watcher->progressMinimum()); - } - } - futureInterface.setProgressValue(progressSum); - } - - void updateProgressText() - { - QString text; - const QList *> watchersValues = watchers.values(); - foreach (QFutureWatcher *watcher, watchersValues) { - if (!watcher->progressText().isEmpty()) - text += watcher->progressText() + "\n"; - } - text = text.trimmed(); - futureInterface.setProgressValueAndText(futureInterface.progressValue(), text); - } - - QFutureInterface futureInterface; - void (Class::*fn)(QFutureInterface &); - QList objects; - - QFutureWatcher *selfWatcher; - QMap *> watchers; - QMap *, bool> finished; - QEventLoop *loop; - int maxProgress; -}; - -template -QFuture run(void (Class::*fn)(QFutureInterface &), const QList &objects, int priority = 0) -{ - MultiTask *task = new MultiTask(fn, objects); - QFuture future = task->future(); - QThreadPool::globalInstance()->start(task, priority); - return future; -} - -} // namespace QtConcurrent - -QT_END_NAMESPACE - -#endif // MULTITASK_H diff --git a/libs/qtconcurrent/qtconcurrent.pri b/libs/qtconcurrent/qtconcurrent.pri deleted file mode 100644 index 57929a4cf11042a08347064a1fb7cd4468efe858..0000000000000000000000000000000000000000 --- a/libs/qtconcurrent/qtconcurrent.pri +++ /dev/null @@ -1 +0,0 @@ -LIBS *= -l$$qtLibraryTarget(QtConcurrent) diff --git a/libs/qtconcurrent/qtconcurrent.pro b/libs/qtconcurrent/qtconcurrent.pro deleted file mode 100644 index ef29d9188ff217c5fe0551fdee0c0c5c07cf6cd7..0000000000000000000000000000000000000000 --- a/libs/qtconcurrent/qtconcurrent.pro +++ /dev/null @@ -1,10 +0,0 @@ -TEMPLATE = lib -TARGET = QtConcurrent -DEFINES += BUILD_QTCONCURRENT - -include(../../openpilotgcslibrary.pri) - -HEADERS += \ - qtconcurrent_global.h \ - multitask.h \ - runextensions.h diff --git a/libs/qtconcurrent/qtconcurrent_global.h b/libs/qtconcurrent/qtconcurrent_global.h deleted file mode 100644 index ba8c071f379ef0c37648826869d1c5b698fdb2e7..0000000000000000000000000000000000000000 --- a/libs/qtconcurrent/qtconcurrent_global.h +++ /dev/null @@ -1,40 +0,0 @@ -/** - ****************************************************************************** - * - * @file qtconcurrent_global.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef QTCONCURRENT_GLOBAL_H -#define QTCONCURRENT_GLOBAL_H - -#include - -#if defined(BUILD_QTCONCURRENT) -# define QTCONCURRENT_EXPORT Q_DECL_EXPORT -#else -# define QTCONCURRENT_EXPORT Q_DECL_IMPORT -#endif - -#endif // QTCONCURRENT_GLOBAL_H diff --git a/libs/qtconcurrent/runextensions.h b/libs/qtconcurrent/runextensions.h deleted file mode 100644 index 96f5c7dab1a6babfe0d5e3f70037ef2ec9c7ddec..0000000000000000000000000000000000000000 --- a/libs/qtconcurrent/runextensions.h +++ /dev/null @@ -1,393 +0,0 @@ -/** - ****************************************************************************** - * - * @file runextensions.h - * @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010. - * Parts by Nokia Corporation (qt-info@nokia.com) Copyright (C) 2009. - * @brief - * @see The GNU Public License (GPL) Version 3 - * @defgroup - * @{ - * - *****************************************************************************/ -/* - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#ifndef QTCONCURRENT_RUNEX_H -#define QTCONCURRENT_RUNEX_H - -#include -#include -#include - -QT_BEGIN_NAMESPACE - -namespace QtConcurrent { - -template -class StoredInterfaceFunctionCall0 : public QRunnable -{ -public: - StoredInterfaceFunctionCall0(void (fn)(QFutureInterface &)) - : fn(fn) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - -}; -template -class StoredInterfaceMemberFunctionCall0 : public QRunnable -{ -public: - StoredInterfaceMemberFunctionCall0(void (Class::*fn)(QFutureInterface &), Class *object) - : fn(fn), object(object) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - -}; - -template -class StoredInterfaceFunctionCall1 : public QRunnable -{ -public: - StoredInterfaceFunctionCall1(void (fn)(QFutureInterface &, Arg1), Arg1 arg1) - : fn(fn), arg1(arg1) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; -}; -template -class StoredInterfaceMemberFunctionCall1 : public QRunnable -{ -public: - StoredInterfaceMemberFunctionCall1(void (Class::*fn)(QFutureInterface &, Arg1), Class *object, Arg1 arg1) - : fn(fn), object(object), arg1(arg1) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; -}; - -template -class StoredInterfaceFunctionCall2 : public QRunnable -{ -public: - StoredInterfaceFunctionCall2(void (fn)(QFutureInterface &, Arg1, Arg2), Arg1 arg1, Arg2 arg2) - : fn(fn), arg1(arg1), arg2(arg2) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; -}; -template -class StoredInterfaceMemberFunctionCall2 : public QRunnable -{ -public: - StoredInterfaceMemberFunctionCall2(void (Class::*fn)(QFutureInterface &, Arg1, Arg2), Class *object, Arg1 arg1, Arg2 arg2) - : fn(fn), object(object), arg1(arg1), arg2(arg2) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; -}; - -template -class StoredInterfaceFunctionCall3 : public QRunnable -{ -public: - StoredInterfaceFunctionCall3(void (fn)(QFutureInterface &, Arg1, Arg2, Arg3), Arg1 arg1, Arg2 arg2, Arg3 arg3) - : fn(fn), arg1(arg1), arg2(arg2), arg3(arg3) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2, arg3); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; Arg3 arg3; -}; -template -class StoredInterfaceMemberFunctionCall3 : public QRunnable -{ -public: - StoredInterfaceMemberFunctionCall3(void (Class::*fn)(QFutureInterface &, Arg1, Arg2, Arg3), Class *object, Arg1 arg1, Arg2 arg2, Arg3 arg3) - : fn(fn), object(object), arg1(arg1), arg2(arg2), arg3(arg3) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2, arg3); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; Arg3 arg3; -}; - -template -class StoredInterfaceFunctionCall4 : public QRunnable -{ -public: - StoredInterfaceFunctionCall4(void (fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) - : fn(fn), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2, arg3, arg4); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; -}; -template -class StoredInterfaceMemberFunctionCall4 : public QRunnable -{ -public: - StoredInterfaceMemberFunctionCall4(void (Class::*fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4), Class *object, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) - : fn(fn), object(object), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2, arg3, arg4); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; -}; - -template -class StoredInterfaceFunctionCall5 : public QRunnable -{ -public: - StoredInterfaceFunctionCall5(void (fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4, Arg5), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) - : fn(fn), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - fn(futureInterface, arg1, arg2, arg3, arg4, arg5); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; -}; -template -class StoredInterfaceMemberFunctionCall5 : public QRunnable -{ -public: - StoredInterfaceMemberFunctionCall5(void (Class::*fn)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4, Arg5), Class *object, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) - : fn(fn), object(object), arg1(arg1), arg2(arg2), arg3(arg3), arg4(arg4), arg5(arg5) { } - - QFuture start() - { - futureInterface.reportStarted(); - QFuture future = futureInterface.future(); - QThreadPool::globalInstance()->start(this); - return future; - } - - void run() - { - (object->*fn)(futureInterface, arg1, arg2, arg3, arg4, arg5); - futureInterface.reportFinished(); - } -private: - QFutureInterface futureInterface; - FunctionPointer fn; - Class *object; - Arg1 arg1; Arg2 arg2; Arg3 arg3; Arg4 arg4; Arg5 arg5; -}; - -template -QFuture run(void (*functionPointer)(QFutureInterface &)) -{ - return (new StoredInterfaceFunctionCall0 &)>(functionPointer))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1), Arg1 arg1) -{ - return (new StoredInterfaceFunctionCall1 &, Arg1), Arg1>(functionPointer, arg1))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2), Arg1 arg1, Arg2 arg2) -{ - return (new StoredInterfaceFunctionCall2 &, Arg1, Arg2), Arg1, Arg2>(functionPointer, arg1, arg2))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2, Arg3), Arg1 arg1, Arg2 arg2, Arg3 arg3) -{ - return (new StoredInterfaceFunctionCall3 &, Arg1, Arg2, Arg3), Arg1, Arg2, Arg3>(functionPointer, arg1, arg2, arg3))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4) -{ - return (new StoredInterfaceFunctionCall4 &, Arg1, Arg2, Arg3, Arg4), Arg1, Arg2, Arg3, Arg4>(functionPointer, arg1, arg2, arg3, arg4))->start(); -} -template -QFuture run(void (*functionPointer)(QFutureInterface &, Arg1, Arg2, Arg3, Arg4, Arg5), Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5) -{ - return (new StoredInterfaceFunctionCall5 &, Arg1, Arg2, Arg3, Arg4, Arg5), Arg1, Arg2, Arg3, Arg4, Arg5>(functionPointer, arg1, arg2, arg3, arg4, arg5))->start(); -} - -template -QFuture run(void (Class::*fn)(QFutureInterface &), Class *object) -{ - return (new StoredInterfaceMemberFunctionCall0 &), Class>(fn, object))->start(); -} - -} // namespace QtConcurrent - -QT_END_NAMESPACE - -#endif // QTCONCURRENT_RUNEX_H