ThreadWeaver 5.109.0
weaverimplstate.h
1/* -*- C++ -*-
2 This file declares the StateIMplementation class.
3
4 SPDX-FileCopyrightText: 2005-2013 Mirko Boehm <mirko@kde.org>
5
6 SPDX-License-Identifier: LGPL-2.0-or-later
7*/
8
9#ifndef WEAVERIMPLSTATE_H
10#define WEAVERIMPLSTATE_H
11
12#include "state.h"
13#include "weaver.h"
14
15namespace ThreadWeaver
16{
17class QueueSignals;
18
20class WeaverImplState : public State
21{
22public:
24
25 const State *state() const override;
26
28 void shutDown() override;
30 void setMaximumNumberOfThreads(int cap) override;
32 int maximumNumberOfThreads() const override;
34 int currentNumberOfThreads() const override;
36 void enqueue(const QVector<JobPointer> &jobs) override;
38 bool dequeue(const JobPointer &job) override;
40 void dequeue() override;
42 void finish() override;
44 bool isEmpty() const override;
46 bool isIdle() const override;
48 int queueLength() const override;
50 void requestAbort() override;
52 void reschedule() override;
54 void waitForAvailableJob(Thread *th) override;
55
56protected:
58 Weaver *weaver() override;
59 const Weaver *weaver() const override;
60};
61
62}
63
64#endif
QueueSignals declares the Qt signals shared by the Queue and Weaver classes.
Definition queuesignals.h:24
We use a State pattern to handle the system state in ThreadWeaver.
Definition state.h:56
Thread represents a worker thread in a Queue's inventory.
Definition thread.h:28
Base class for all WeaverImpl states.
Definition weaverimplstate.h:21
void finish() override
Finish all queued jobs.
int queueLength() const override
How many jobs are currently queued?
void reschedule() override
Reschedule jobs to threads.
void dequeue() override
Dequeue all jobs.
int currentNumberOfThreads() const override
Returns the current number of threads in the inventory.
Weaver * weaver() override
Provide correct return type for WeaverImpl states.
void waitForAvailableJob(Thread *th) override
Wait (by suspending the calling thread) until a job becomes available.
const State * state() const override
Return the state of the weaver object.
bool isIdle() const override
Are all threads waiting?
void shutDown() override
Shut down the queue.
void requestAbort() override
Request abort for all queued and currently executed jobs.
void setMaximumNumberOfThreads(int cap) override
Set the maximum number of threads this Weaver object may start.
void enqueue(const QVector< JobPointer > &jobs) override
Enqueue a job.
int maximumNumberOfThreads() const override
Get the maximum number of threads this Weaver may start.
bool isEmpty() const override
Are no more jobs queued?
bool dequeue(const JobPointer &job) override
Dequeue a job.
A Weaver manages worker threads.
Definition weaver.h:35