diff options
author | Lars Knoll <lars.knoll@digia.com> | 2012-11-29 10:27:52 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-30 00:48:37 +0100 |
commit | 753a47892588b2dead91b4ce033b1510f1496fe5 (patch) | |
tree | 97d5ce8af28e093365d50e4b908469dc470ee21d /src/concurrent/doc | |
parent | aeb036ed8715d0c099d3dca87f7def4dbaf8e9b4 (diff) |
Fixup concurrent docs
qdoc now finds an overview and the concurrent namespace.
Change-Id: I2cd15bc19091f53bd2bb98919e685d49d473dbec
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Diffstat (limited to 'src/concurrent/doc')
-rw-r--r-- | src/concurrent/doc/src/qtconcurrent-index.qdoc | 127 | ||||
-rw-r--r-- | src/concurrent/doc/src/qtconcurrent-module.qdoc (renamed from src/concurrent/doc/src/qtconcurrent.qdoc) | 11 |
2 files changed, 132 insertions, 6 deletions
diff --git a/src/concurrent/doc/src/qtconcurrent-index.qdoc b/src/concurrent/doc/src/qtconcurrent-index.qdoc new file mode 100644 index 0000000000..eeb35c2326 --- /dev/null +++ b/src/concurrent/doc/src/qtconcurrent-index.qdoc @@ -0,0 +1,127 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL$ +** 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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: http://www.gnu.org/copyleft/fdl.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page qtconcurrent-index.html + \title Qt Concurrent + + \brief The Qt Concurrent module contains functionality to support concurrent execution of program code. + + \section1 Getting Started + + The QtConcurrent namespace provides high-level APIs that make it + possible to write multi-threaded programs without using low-level + threading primitives such as mutexes, read-write locks, wait + conditions, or semaphores. Programs written with QtConcurrent + automatically adjust the number of threads used according to the + number of processor cores available. This means that applications + written today will continue to scale when deployed on multi-core + systems in the future. + + QtConcurrent includes functional programming style APIs for + parallel list processing, including a MapReduce and FilterReduce + implementation for shared-memory (non-distributed) systems, and + classes for managing asynchronous computations in GUI + applications: + + \list + + \li QtConcurrent::map() applies a function to every item in a container, + modifying the items in-place. + + \li QtConcurrent::mapped() is like map(), except that it returns a new + container with the modifications. + + \li QtConcurrent::mappedReduced() is like mapped(), except that the + modified results are reduced or folded into a single result. + + \li QtConcurrent::filter() removes all items from a container based on the + result of a filter function. + + \li QtConcurrent::filtered() is like filter(), except that it returns a new + container with the filtered results. + + \li QtConcurrent::filteredReduced() is like filtered(), except that the + filtered results are reduced or folded into a single result. + + \li QtConcurrent::run() runs a function in another thread. + + \li QFuture represents the result of an asynchronous computation. + + \li QFutureIterator allows iterating through results available via QFuture. + + \li QFutureWatcher allows monitoring a QFuture using signals-and-slots. + + \li QFutureSynchronizer is a convenience class that automatically + synchronizes several QFutures. + + \endlist + + Qt Concurrent supports several STL-compatible container and iterator types, + but works best with Qt containers that have random-access iterators, such as + QList or QVector. The map and filter functions accept both containers and begin/end iterators. + + STL Iterator support overview: + + \table + \header + \li Iterator Type + \li Example classes + \li Support status + \row + \li Input Iterator + \li + \li Not Supported + \row + \li Output Iterator + \li + \li Not Supported + \row + \li Forward Iterator + \li std::slist + \li Supported + \row + \li Bidirectional Iterator + \li QLinkedList, std::list + \li Supported + \row + \li Random Access Iterator + \li QList, QVector, std::vector + \li Supported and Recommended + \endtable + + Random access iterators can be faster in cases where Qt Concurrent is iterating + over a large number of lightweight items, since they allow skipping to any point + in the container. In addition, using random access iterators allows Qt Concurrent + to provide progress information trough QFuture::progressValue() and QFutureWatcher:: + progressValueChanged(). + + The non in-place modifying functions such as mapped() and filtered() makes a + copy of the container when called. If you are using STL containers this copy operation + might take some time, in this case we recommend specifying the begin and end iterators + for the container instead. +*/ diff --git a/src/concurrent/doc/src/qtconcurrent.qdoc b/src/concurrent/doc/src/qtconcurrent-module.qdoc index efc43c90ce..aa3148b3f5 100644 --- a/src/concurrent/doc/src/qtconcurrent.qdoc +++ b/src/concurrent/doc/src/qtconcurrent-module.qdoc @@ -27,14 +27,13 @@ /*! \module QtConcurrent - \title QtConcurrent Module - \ingroup modules - - \keyword QtConcurrent + \title Qt Concurrent C++ classes + \brief The Qt Concurrent module contains functionality to support concurrent execution of program code - \brief The QtConcurrent module contains functionality to support concurrent execution of program code + \ingroup modules + \ingroup technology-apis - The concurrent module extends the basic threading support found in \l{QtCore module}{Qt Core} and + The Qt Concurrent module extends the basic threading support found in \l{Qt Core} module and simplifies the development of code that can be executed in parallel on all available CPU cores. */ |