File indexing completed on 2024-04-21 04:01:29

0001 /* -*- C++ -*-
0002     This file declares the WorkingHardState 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: WorkingHardState.h 32 2005-08-17 08:38:01Z mirko $
0009 */
0010 
0011 #ifndef WorkingHardState_H
0012 #define WorkingHardState_H
0013 
0014 #include "weaver.h"
0015 #include "weaverimplstate.h"
0016 
0017 namespace ThreadWeaver
0018 {
0019 /* WorkingHardState handles the state dependent calls in the state where
0020  * jobs are executed.  */
0021 class WorkingHardState : public WeaverImplState
0022 {
0023 public:
0024     explicit WorkingHardState(Weaver *weaver);
0025     /** Suspend job processing. */
0026     void suspend() override;
0027     /** Resume job processing. */
0028     void resume() override;
0029     /** Assign a job to an idle thread. */
0030     JobPointer applyForWork(Thread *th, bool wasBusy) override;
0031     /** Overload. */
0032     void activated() override;
0033     /** reimpl */
0034     StateId stateId() const override;
0035 };
0036 
0037 }
0038 
0039 #endif // WorkingHardIState_H