From 4548022ee27259b85a41a8df2ad28a99f1af7eed Mon Sep 17 00:00:00 2001 From: Casper van Donderen Date: Mon, 7 May 2012 11:33:42 +0200 Subject: Doc: Modularize QtConcurrent documentation. This change moves the snippets and images to the modularized directories. Change-Id: If52f69c0f8bb4d2df4ee46f5524a82047ec214de Reviewed-by: Marius Storm-Olsen --- .../code/src_corelib_concurrent_qfuture.cpp | 64 ------- .../src_corelib_concurrent_qfuturesynchronizer.cpp | 53 ------ .../code/src_corelib_concurrent_qfuturewatcher.cpp | 50 ------ ...rc_corelib_concurrent_qtconcurrentexception.cpp | 75 --------- .../src_corelib_concurrent_qtconcurrentfilter.cpp | 171 ------------------- .../src_corelib_concurrent_qtconcurrentmap.cpp | 184 --------------------- .../src_corelib_concurrent_qtconcurrentrun.cpp | 98 ----------- 7 files changed, 695 deletions(-) delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp delete mode 100644 doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp (limited to 'doc') diff --git a/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp b/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp deleted file mode 100644 index ddf075b6ca..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qfuture.cpp +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -QFuture future = ...; - -QFuture::const_iterator i; -for (i = future.constBegin(); i != future.constEnd(); ++i) - cout << *i << endl; -//! [0] - - -//! [1] -QFuture future; -... -QFutureIterator i(future); -while (i.hasNext()) - qDebug() << i.next(); -//! [1] - - -//! [2] -QFutureIterator i(future); -i.toBack(); -while (i.hasPrevious()) - qDebug() << i.previous(); -//! [2] diff --git a/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp b/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp deleted file mode 100644 index 77003791e9..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qfuturesynchronizer.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -void someFunction() -{ - QFutureSynchronizer synchronizer; - - ... - - synchronizer.addFuture(QtConcurrent::run(anotherFunction)); - synchronizer.addFuture(QtConcurrent::map(list, mapFunction)); - - return; // QFutureSynchronizer waits for all futures to finish -} -//! [0] diff --git a/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp b/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp deleted file mode 100644 index 703275bc7a..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qfuturewatcher.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -// Instantiate the objects and connect to the finished signal. -MyClass myObject; -QFutureWatcher watcher; -connect(&watcher, SIGNAL(finished()), &myObject, SLOT(handleFinished())); - -// Start the computation. -QFuture future = QtConcurrent::run(...); -watcher.setFuture(future); -//! [0] diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp deleted file mode 100644 index cf0257c45b..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentexception.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] - -class MyException : public QtConcurrent::Exception -{ -public: - void raise() const { throw *this; } - Exception *clone() const { return new MyException(*this); } -}; - -//! [0] - - -//! [1] - -try { - QtConcurrent::blockingMap(list, throwFunction); // throwFunction throws MyException -} catch (MyException &e) { - // handle exception -} - -//! [1] - - -//! [2] - -void MyException::raise() const { throw *this; } - -//! [2] - - -//! [3] - -MyException *MyException::clone() const { return new MyException(*this); } - -//! [3] diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp deleted file mode 100644 index 2acf467e9a..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentfilter.cpp +++ /dev/null @@ -1,171 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -bool function(const T &t); -//! [0] - - -//! [1] -bool allLowerCase(const QString &string) -{ - return string.lowered() == string; -} - -QStringList strings = ...; -QFuture lowerCaseStrings = QtConcurrent::filtered(strings, allLowerCase); -//! [1] - - -//! [2] -QStringList strings = ...; -QFuture future = QtConcurrent::filter(strings, allLowerCase); -//! [2] - - -//! [3] -V function(T &result, const U &intermediate) -//! [3] - - -//! [4] -void addToDictionary(QSet &dictionary, const QString &string) -{ - dictionary.insert(string); -} - -QStringList strings = ...; -QFuture > dictionary = QtConcurrent::filteredReduced(strings, allLowerCase, addToDictionary); -//! [4] - - -//! [5] -QStringList strings = ...; -QFuture lowerCaseStrings = QtConcurrent::filtered(strings.constBegin(), strings.constEnd(), allLowerCase); - -// filter in-place only works on non-const iterators -QFuture future = QtConcurrent::filter(strings.begin(), strings.end(), allLowerCase); - -QFuture > dictionary = QtConcurrent::filteredReduced(strings.constBegin(), strings.constEnd(), allLowerCase, addToDictionary); -//! [5] - - -//! [6] -QStringList strings = ...; - -// each call blocks until the entire operation is finished -QStringList lowerCaseStrings = QtConcurrent::blockingFiltered(strings, allLowerCase); - - -QtConcurrent::blockingFilter(strings, allLowerCase); - -QSet dictionary = QtConcurrent::blockingFilteredReduced(strings, allLowerCase, addToDictionary); -//! [6] - - -//! [7] -// keep only images with an alpha channel -QList images = ...; -QFuture alphaImages = QtConcurrent::filter(strings, &QImage::hasAlphaChannel); - -// keep only gray scale images -QList images = ...; -QFuture grayscaleImages = QtConcurrent::filtered(images, &QImage::isGrayscale); - -// create a set of all printable characters -QList characters = ...; -QFuture > set = QtConcurrent::filteredReduced(characters, &QChar::isPrint, &QSet::insert); -//! [7] - - -//! [8] -// can mix normal functions and member functions with QtConcurrent::filteredReduced() - -// create a dictionary of all lower cased strings -extern bool allLowerCase(const QString &string); -QStringList strings = ...; -QFuture > averageWordLength = QtConcurrent::filteredReduced(strings, allLowerCase, QSet::insert); - -// create a collage of all gray scale images -extern void addToCollage(QImage &collage, const QImage &grayscaleImage); -QList images = ...; -QFuture collage = QtConcurrent::filteredReduced(images, &QImage::isGrayscale, addToCollage); -//! [8] - - -//! [9] -bool QString::contains(const QRegExp ®exp) const; -//! [9] - - -//! [10] -boost::bind(&QString::contains, QRegExp("^\\S+$")); // matches strings without whitespace -//! [10] - - -//! [11] -bool contains(const QString &string) -//! [11] - - -//! [12] -QStringList strings = ...; -boost::bind(static_cast( &QString::contains ), QRegExp("..." )); -//! [12] - -//! [13] -struct StartsWith -{ - StartsWith(const QString &string) - : m_string(string) { } - - typedef bool result_type; - - bool operator()(const QString &testString) - { - return testString.startsWith(m_string); - } - - QString m_string; -}; - -QList strings = ...; -QFuture fooString = QtConcurrent::filtered(images, StartsWith(QLatin1String("Foo"))); -//! [13] diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp deleted file mode 100644 index 9b83ad5bef..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentmap.cpp +++ /dev/null @@ -1,184 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -U function(const T &t); -//! [0] - - -//! [1] -QImage scaled(const QImage &image) -{ - return image.scaled(100, 100); -} - -QList images = ...; -QFuture thumbnails = QtConcurrent::mapped(images, scaled); -//! [1] - - -//! [2] -U function(T &t); -//! [2] - - -//! [3] -void scale(QImage &image) -{ - image = image.scaled(100, 100); -} - -QList images = ...; -QFuture future = QtConcurrent::map(images, scale); -//! [3] - - -//! [4] -V function(T &result, const U &intermediate) -//! [4] - - -//! [5] -void addToCollage(QImage &collage, const QImage &thumbnail) -{ - QPainter p(&collage); - static QPoint offset = QPoint(0, 0); - p.drawImage(offset, thumbnail); - offset += ...; -} - -QList images = ...; -QFuture collage = QtConcurrent::mappedReduced(images, scaled, addToCollage); -//! [5] - - -//! [6] -QList images = ...; - -QFuture thumbnails = QtConcurrent::mapped(images.constBegin(), images.constEnd(), scaled); - -// map in-place only works on non-const iterators -QFuture future = QtConcurrent::map(images.begin(), images.end(), scale); - -QFuture collage = QtConcurrent::mappedReduced(images.constBegin(), images.constEnd(), scaled, addToCollage); -//! [6] - - -//! [7] -QList images = ...; - -// each call blocks until the entire operation is finished -QList future = QtConcurrent::blockingMapped(images, scaled); - -QtConcurrent::blockingMap(images, scale); - -QImage collage = QtConcurrent::blockingMappedReduced(images, scaled, addToCollage); -//! [7] - - -//! [8] -// squeeze all strings in a QStringList -QStringList strings = ...; -QFuture squeezedStrings = QtConcurrent::map(strings, &QString::squeeze); - -// swap the rgb values of all pixels on a list of images -QList images = ...; -QFuture bgrImages = QtConcurrent::mapped(images, &QImage::rgbSwapped); - -// create a set of the lengths of all strings in a list -QStringList strings = ...; -QFuture > wordLengths = QtConcurrent::mappedReduced(string, &QString::length, &QSet::insert); -//! [8] - - -//! [9] -// can mix normal functions and member functions with QtConcurrent::mappedReduced() - -// compute the average length of a list of strings -extern void computeAverage(int &average, int length); -QStringList strings = ...; -QFuture averageWordLength = QtConcurrent::mappedReduced(strings, &QString::length, computeAverage); - -// create a set of the color distribution of all images in a list -extern int colorDistribution(const QImage &string); -QList images = ...; -QFuture > totalColorDistribution = QtConcurrent::mappedReduced(images, colorDistribution, QSet::insert); -//! [9] - - -//! [10] -QImage QImage::scaledToWidth(int width, Qt::TransformationMode) const; -//! [10] - - -//! [11] -boost::bind(&QImage::scaledToWidth, 100, Qt::SmoothTransformation) -//! [11] - - -//! [12] -QImage scaledToWith(const QImage &image) -//! [12] - - -//! [13] -QList images = ...; -QFuture thumbnails = QtConcurrent::mapped(images, boost::bind(&QImage::scaledToWidth, 100 Qt::SmoothTransformation)); -//! [13] - -//! [14] -struct Scaled -{ - Scaled(int size) - : m_size(size) { } - - typedef QImage result_type; - - QImage operator()(const QImage &image) - { - return image.scaled(m_size, m_size); - } - - int m_size; -}; - -QList images = ...; -QFuture thumbnails = QtConcurrent::mapped(images, Scaled(100)); -//! [14] diff --git a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp b/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp deleted file mode 100644 index 362f084092..0000000000 --- a/doc/src/snippets/code/src_corelib_concurrent_qtconcurrentrun.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/ -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -extern void aFunction(); -QFuture future = QtConcurrent::run(aFunction); -//! [0] - - -//! [1] -extern void aFunctionWithArguments(int arg1, double arg2, const QString &string); - -int integer = ...; -double floatingPoint = ...; -QString string = ...; - -QFuture future = QtConcurrent::run(aFunctionWithArguments, integer, floatingPoint, string); -//! [1] - - -//! [2] -extern QString functionReturningAString(); -QFuture future = QtConcurrent::run(functionReturningAString); -... -QString result = future.result(); -//! [2] - - -//! [3] -extern QString someFunction(const QByteArray &input); - -QByteArray bytearray = ...; - -QFuture future = QtConcurrent::run(someFunction, bytearray); -... -QString result = future.result(); -//! [3] - -//! [4] -// call 'QList QByteArray::split(char sep) const' in a separate thread -QByteArray bytearray = "hello world"; -QFuture > future = QtConcurrent::run(bytearray, &QByteArray::split, ','); -... -QList result = future.result(); -//! [4] - -//! [5] -// call 'void QImage::invertPixels(InvertMode mode)' in a separate thread -QImage image = ...; -QFuture future = QtConcurrent::run(&image, &QImage::invertPixels, QImage::InvertRgba); -... -future.waitForFinished(); -// At this point, the pixels in 'image' have been inverted -//! [5] - - -//! [6] -void someFunction(int arg1, double arg2); -QFuture future = QtConcurrent::run(boost::bind(someFunction, 1, 2.0)); -... -//! [6] -- cgit v1.2.3