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

0001 /* -*- C++ -*-
0002     This file declares the DestructedState class.
0003 
0004     SPDX-FileCopyrightText: 2005-2013 Mirko Boehm <mirko@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 
0008     $Id: DestructedState.h 32 2005-08-17 08:38:01Z mirko $
0009 */
0010 
0011 #ifndef DestructedState_H
0012 #define DestructedState_H
0013 
0014 #include "weaverimplstate.h"
0015 
0016 namespace ThreadWeaver
0017 {
0018 class QueueSignals;
0019 
0020 /** DestructedState is only active after the thread have been destroyed by
0021  *  the destructor, but before superclass destructors have finished.
0022  */
0023 class DestructedState : public WeaverImplState
0024 {
0025 public:
0026     explicit DestructedState(QueueSignals *weaver);
0027     void shutDown() override;
0028     Weaver *weaver() override;
0029     const Weaver *weaver() const override;
0030     void setMaximumNumberOfThreads(int cap) override;
0031     int maximumNumberOfThreads() const override;
0032     int currentNumberOfThreads() const override;
0033     void enqueue(const QList<JobPointer> &job) override;
0034     bool dequeue(const JobPointer &job) override;
0035     void dequeue() override;
0036     void finish() override;
0037     bool isEmpty() const override;
0038     bool isIdle() const override;
0039     int queueLength() const override;
0040     void requestAbort() override;
0041     void suspend() override;
0042     void resume() override;
0043     JobPointer applyForWork(Thread *th, bool wasBusy) override;
0044     void waitForAvailableJob(Thread *th) override;
0045     StateId stateId() const override;
0046 };
0047 
0048 }
0049 
0050 #endif // DestructedState_H