summaryrefslogtreecommitdiffstats
path: root/src/corelib/concurrent/qtconcurrentrun.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2012-02-03 14:17:26 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-05 17:49:16 +0100
commit96501b0a18f4f70048403dccc4cb42dd71db8f9d (patch)
treeec4b95139854d1116ad75467c3c08df39fafeb27 /src/corelib/concurrent/qtconcurrentrun.cpp
parentc8156cab81690526adffa22214657fc1c6563b8b (diff)
Move QtConcurrent into its own module
Task-number: QTBUG-20892 Change-Id: I614500aafb6428915509983608bbb0ade4e4f016 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/concurrent/qtconcurrentrun.cpp')
-rw-r--r--src/corelib/concurrent/qtconcurrentrun.cpp152
1 files changed, 0 insertions, 152 deletions
diff --git a/src/corelib/concurrent/qtconcurrentrun.cpp b/src/corelib/concurrent/qtconcurrentrun.cpp
deleted file mode 100644
index e51626ed13..0000000000
--- a/src/corelib/concurrent/qtconcurrentrun.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** 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, Nokia gives you certain additional
-** rights. These rights are described in the Nokia 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.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \headerfile <QtConcurrentRun>
- \title Asynchronous Run
-
- \brief The <QtConcurrentRun> header provides a way to run a function in a
- separate thread.
-
- \ingroup thread
-
- This function is a part of the \l {Concurrent Programming}{Qt Concurrent} framework.
-
- The QtConcurrent::run() function runs a function in a separate thread.
- The return value of the function is made available through the QFuture API.
-
- \section1 Running a Function in a Separate Thread
-
- To run a function in another thread, use QtConcurrent::run():
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 0
-
- This will run \e aFunction in a separate thread obtained from the default
- QThreadPool. You can use the QFuture and QFutureWatcher classes to monitor
- the status of the function.
-
- \section1 Passing Arguments to the Function
-
- Passing arguments to the function is done by adding them to the
- QtConcurrent::run() call immediately after the function name. For example:
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 1
-
- A copy of each argument is made at the point where QtConcurrent::run() is
- called, and these values are passed to the thread when it begins executing
- the function. Changes made to the arguments after calling
- QtConcurrent::run() are \e not visible to the thread.
-
- \section1 Returning Values from the Function
-
- Any return value from the function is available via QFuture:
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 2
-
- As documented above, passing arguments is done like this:
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 3
-
- Note that the QFuture::result() function blocks and waits for the result
- to become available. Use QFutureWatcher to get notification when the
- function has finished execution and the result is available.
-
- \section1 Additional API Features
-
- \section2 Using Member Functions
-
- QtConcurrent::run() also accepts pointers to member functions. The first
- argument must be either a const reference or a pointer to an instance of
- the class. Passing by const reference is useful when calling const member
- functions; passing by pointer is useful for calling non-const member
- functions that modify the instance.
-
- For example, calling QByteArray::split() (a const member function) in a
- separate thread is done like this:
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 4
-
- Calling a non-const member function is done like this:
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 5
-
- \section2 Using Bound Function Arguments
-
- Note that Qt does not provide support for bound functions. This is
- provided by 3rd party libraries like
- \l{http://www.boost.org/libs/bind/bind.html}{Boost} or
- \l{http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf}
- {C++ TR1 Library Extensions}.
-
- You can use boost::bind() or std::tr1::bind() to \e bind a number of
- arguments to a function when called. There are number of reasons for doing
- this:
-
- \list
- \o To call a function that takes more than 5 arguments.
- \o To simplify calling a function with constant arguments.
- \o Changing the order of arguments.
- \endlist
-
- See the documentation for the relevant functions for details on how to use
- the bind API.
-
- Calling a bound function is done like this:
-
- \snippet doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp 6
-*/
-
-/*!
- \fn QFuture<T> QtConcurrent::run(Function function, ...);
- \relates <QtConcurrentRun>
-
- Runs \a function in a separate thread. The thread is taken from the global
- QThreadPool. Note that the function may not run immediately; the function
- will only be run when a thread is available.
-
- T is the same type as the return value of \a function. Non-void return
- values can be accessed via the QFuture::result() function.
-
- Note that the QFuture returned by QtConcurrent::run() does not support
- canceling, pausing, or progress reporting. The QFuture returned can only
- be used to query for the running/finished status and the return value of
- the function.
-*/