File indexing completed on 2024-04-28 04:01:24

0001 /* -*- C++ -*-
0002     This file declares the Sequence class.
0003 
0004     SPDX-FileCopyrightText: 2004-2013 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 
0008     $Id: DebuggingAids.h 30 2005-08-16 16:16:04Z mirko $
0009 */
0010 
0011 #ifndef JOBSEQUENCE_H
0012 #define JOBSEQUENCE_H
0013 
0014 #include "collection.h"
0015 
0016 namespace ThreadWeaver
0017 {
0018 namespace Private
0019 {
0020 class Sequence_Private;
0021 }
0022 
0023 /** @brief A Sequence is a vector of Jobs that will be executed in a sequence.
0024  *
0025  * It is implemented by automatically creating the necessary dependencies between the Jobs in the sequence.
0026  *
0027  * Sequence provides a handy cleanup and unwind mechanism: the stop() slot. If it is called, the processing
0028  * of the sequence will stop, and all its remaining Jobs will be dequeued.
0029  * A Sequence is the first element of itself. */
0030 class THREADWEAVER_EXPORT Sequence : public Collection
0031 {
0032 public:
0033     explicit Sequence();
0034 
0035 private:
0036     Private::Sequence_Private *d();
0037     const Private::Sequence_Private *d() const;
0038 };
0039 
0040 }
0041 
0042 #endif