#include #include "ipcpreviewworker.h" #include "previewgeneratormapfunctor.h" IPCPreviewWorker::IPCPreviewWorker() { } void IPCPreviewWorker::start(RenderConfig config, const QVector &targets, QLocalSocket *peer) { connect(&previewWorkerWatcher, &QFutureWatcher::resultReadyAt, this, [peer, this](int index) { QDataStream stream{peer}; stream << previewWorkerWatcher.resultAt(index); peer->flush(); }); connect(&previewWorkerWatcher, &QFutureWatcher::finished, this, [peer] { /* TODO / /*peer->waitForBytesWritten(); peer->disconnectFromServer(); peer->deleteLater();*/ }); auto mapFunctor = new PreviewGeneratorMapFunctor(); mapFunctor->setRenderConfig(config); previewWorkerWatcher.setFuture(QtConcurrent::mapped(targets, *mapFunctor)); }