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