ThreadWeaver 5.109.0
Public Member Functions | Protected Member Functions | List of all members
ThreadWeaver::WeaverImplState

Base class for all WeaverImpl states. More...

#include <weaverimplstate.h>

Public Member Functions

 WeaverImplState (QueueSignals *weaver)
 
int currentNumberOfThreads () const override
 Returns the current number of threads in the inventory.
 
void dequeue () override
 Dequeue all jobs.
 
bool dequeue (const JobPointer &job) override
 Dequeue a job.
 
void enqueue (const QVector< JobPointer > &jobs) override
 Enqueue a job.
 
void finish () override
 Finish all queued jobs.
 
bool isEmpty () const override
 Are no more jobs queued?
 
bool isIdle () const override
 Are all threads waiting?
 
int maximumNumberOfThreads () const override
 Get the maximum number of threads this Weaver may start.
 
int queueLength () const override
 How many jobs are currently queued?
 
void requestAbort () override
 Request abort for all queued and currently executed jobs.
 
void reschedule () override
 Reschedule jobs to threads.
 
void setMaximumNumberOfThreads (int cap) override
 Set the maximum number of threads this Weaver object may start.
 
void shutDown () override
 Shut down the queue.
 
const Statestate () const override
 Return the state of the weaver object.
 
void waitForAvailableJob (Thread *th) override
 Wait (by suspending the calling thread) until a job becomes available.
 
- Public Member Functions inherited from ThreadWeaver::State
 State (QueueSignals *weaver)
 Default constructor.
 
 ~State () override
 Destructor.
 
virtual void activated ()
 The state has been changed so that this object is responsible for state handling.
 
virtual StateId stateId () const =0
 The state Id.
 
QString stateName () const
 The ID of the current state.
 
- Public Member Functions inherited from ThreadWeaver::QueueInterface
virtual int currentNumberOfThreads () const =0
 Returns the current number of threads in the inventory.
 
virtual void dequeue ()=0
 Remove all queued jobs.
 
virtual bool dequeue (const JobPointer &job)=0
 Remove a job from the queue.
 
virtual void enqueue (const QVector< JobPointer > &jobs)=0
 Queue a vector of jobs.
 
virtual void finish ()=0
 Finish all queued operations, then return.
 
virtual bool isEmpty () const =0
 Is the queue empty? The queue is empty if no more jobs are queued.
 
virtual bool isIdle () const =0
 Is the weaver idle? The weaver is idle if no jobs are queued and no jobs are processed by the threads.
 
virtual int maximumNumberOfThreads () const =0
 Get the maximum number of threads this Weaver may start.
 
virtual int queueLength () const =0
 Returns the number of pending jobs.
 
virtual void requestAbort ()=0
 Request aborts of the currently executed jobs.
 
virtual void reschedule ()=0
 Reschedule the jobs in the queue.
 
virtual void resume ()=0
 Resume job queueing.
 
virtual void setMaximumNumberOfThreads (int cap)=0
 Set the maximum number of threads this Weaver object may start.
 
virtual void shutDown ()=0
 Shut down the queue.
 
virtual const Statestate () const =0
 Return the state of the weaver object.
 
virtual void suspend ()=0
 Suspend job execution.
 

Protected Member Functions

const Weaverweaver () const override
 
Weaverweaver () override
 Provide correct return type for WeaverImpl states.
 
virtual QueueInterfaceweaver ()
 The Weaver interface this state handles.
 
virtual const QueueInterfaceweaver () const
 

Detailed Description

Base class for all WeaverImpl states.

Member Function Documentation

◆ currentNumberOfThreads()

int ThreadWeaver::WeaverImplState::currentNumberOfThreads ( ) const
overridevirtual

Returns the current number of threads in the inventory.

Implements ThreadWeaver::QueueInterface.

◆ dequeue() [1/2]

void ThreadWeaver::WeaverImplState::dequeue ( )
overridevirtual

Dequeue all jobs.

Implements ThreadWeaver::QueueInterface.

◆ dequeue() [2/2]

bool ThreadWeaver::WeaverImplState::dequeue ( const JobPointer &  job)
overridevirtual

Dequeue a job.

Implements ThreadWeaver::QueueInterface.

◆ enqueue()

void ThreadWeaver::WeaverImplState::enqueue ( const QVector< JobPointer > &  jobs)
overridevirtual

Enqueue a job.

Implements ThreadWeaver::QueueInterface.

◆ finish()

void ThreadWeaver::WeaverImplState::finish ( )
overridevirtual

Finish all queued jobs.

Implements ThreadWeaver::QueueInterface.

◆ isEmpty()

bool ThreadWeaver::WeaverImplState::isEmpty ( ) const
overridevirtual

Are no more jobs queued?

Implements ThreadWeaver::QueueInterface.

◆ isIdle()

bool ThreadWeaver::WeaverImplState::isIdle ( ) const
overridevirtual

Are all threads waiting?

Implements ThreadWeaver::QueueInterface.

◆ maximumNumberOfThreads()

int ThreadWeaver::WeaverImplState::maximumNumberOfThreads ( ) const
overridevirtual

Get the maximum number of threads this Weaver may start.

Implements ThreadWeaver::QueueInterface.

◆ queueLength()

int ThreadWeaver::WeaverImplState::queueLength ( ) const
overridevirtual

How many jobs are currently queued?

Implements ThreadWeaver::QueueInterface.

◆ requestAbort()

void ThreadWeaver::WeaverImplState::requestAbort ( )
overridevirtual

Request abort for all queued and currently executed jobs.

Implements ThreadWeaver::QueueInterface.

◆ reschedule()

void ThreadWeaver::WeaverImplState::reschedule ( )
overridevirtual

Reschedule jobs to threads.

Implements ThreadWeaver::QueueInterface.

◆ setMaximumNumberOfThreads()

void ThreadWeaver::WeaverImplState::setMaximumNumberOfThreads ( int  cap)
overridevirtual

Set the maximum number of threads this Weaver object may start.

Implements ThreadWeaver::QueueInterface.

◆ shutDown()

void ThreadWeaver::WeaverImplState::shutDown ( )
overridevirtual

Shut down the queue.

Implements ThreadWeaver::QueueInterface.

◆ state()

const State * ThreadWeaver::WeaverImplState::state ( ) const
overridevirtual

Return the state of the weaver object.

Implements ThreadWeaver::QueueInterface.

◆ waitForAvailableJob()

void ThreadWeaver::WeaverImplState::waitForAvailableJob ( Thread th)
override

Wait (by suspending the calling thread) until a job becomes available.

◆ weaver() [1/2]

const Weaver * ThreadWeaver::WeaverImplState::weaver ( ) const
overrideprotectedvirtual

Reimplemented from ThreadWeaver::State.

◆ weaver() [2/2]

Weaver * ThreadWeaver::WeaverImplState::weaver ( )
overrideprotectedvirtual

Provide correct return type for WeaverImpl states.

Reimplemented from ThreadWeaver::State.