AUI Framework  master
Cross-platform module-based framework for developing C++20 desktop applications
AThreadPool::Worker Class Reference

Public Member Functions

 Worker (AThreadPool &tp, size_t index)
 
void aboutToDelete ()
 
template<aui::predicate ShouldContinue>
void loop (ShouldContinue &&shouldContinue)
 
AThreadPoolthreadPool () noexcept
 
- Public Member Functions inherited from AThread
 AThread (std::function< void()> functor)
 
void detach ()
 
void start ()
 Start thread execution.
 
bool isInterrupted () override
 
void resetInterruptFlag () override
 Reset interruption flag. More...
 
void interrupt () override
 Interrupt thread's execution. More...
 
void join ()
 Waits for thread to be finished.
 
- Public Member Functions inherited from AAbstractThread
id getId () const
 
void enqueue (AMessageQueue<>::Message f)
 Delivers task for execution (message) to this thread's event queue. Messages are processed by framework itself using AEventLoop. This behaviour may be overwritten using the AThread::processMessages() function.
 
IEventLoopgetCurrentEventLoop () const
 Get current event loop for this thread. More...
 
template<class Callable >
void operator<< (Callable fun)
 Enqueue message to make. More...
 
template<class Callable >
void operator* (Callable fun)
 Enqueue message to make. Helper function for async, asyncX, ui, uiX. More...
 
const AStringthreadName () const noexcept
 
AStacktrace threadStacktrace () const
 Retrieve stacktrace of the thread.
 
bool messageQueueEmpty () noexcept
 
- Public Member Functions inherited from AObject
_< AObjectsharedPtr ()
 
_weak< AObjectweakPtr ()
 
void clearSignals () noexcept
 
template<AAnySignal Signal, ACompatibleSlotFor< Signal > Function>
void connect (Signal &signal, Function &&function)
 
void setSignalsEnabled (bool enabled)
 
bool isSignalsEnabled () const noexcept
 
template<ASignalInvokable T>
void operator^ (T &&t)
 
_< AAbstractThreadgetThread () const
 
bool isSlotsCallsOnlyOnMyThread () const noexcept
 
void setSlotsCallsOnlyOnMyThread (bool slotsCallsOnlyOnMyThread)
 
- Public Member Functions inherited from aui::noncopyable
 noncopyable (const noncopyable &)=delete
 
noncopyableoperator= (const noncopyable &)=delete
 

Additional Inherited Members

- Public Types inherited from AAbstractThread
typedef std::thread::id id
 Thread ID type.
 
- Static Public Member Functions inherited from AThread
static void sleep (std::chrono::milliseconds duration)
 Sleep for specified duration. Most operation systems guarantee that elasped time will be greater than specified. AThread::interrupt() is supported. More...
 
static _< AAbstractThreadcurrent ()
 
static void interruptionPoint ()
 Interruption point. More...
 
static void setName (AString name) noexcept
 
static void processMessages ()
 Processes messages from other threads of current thread. Called by framework itself using IEventLoop.
 
- Static Public Member Functions inherited from AObject
static void disconnect ()
 
template<AAnySignal Signal, aui::derived_from< AObject > Object, ACompatibleSlotFor< Signal > Function>
static void connect (Signal &signal, Object *object, Function &&function)
 
template<AAnySignal Signal, aui::derived_from< AObject > Object, ACompatibleSlotFor< Signal > Function>
static void connect (Signal &signal, Object &object, Function &&function)
 
template<AAnySignal Signal, aui::derived_from< AObject > Object, ACompatibleSlotFor< Signal > Function>
static void connect (Signal &signal, _< Object > object, Function &&function)
 
static void moveToThread (aui::no_escape< AObject > object, _< AAbstractThread > thread)
 
- Protected Member Functions inherited from AAbstractThread
 AAbstractThread (const id &id) noexcept
 
void updateThreadName () noexcept
 
virtual void processMessagesImpl ()
 
- Protected Member Functions inherited from AObject
void setThread (_< AAbstractThread > thread)
 Set thread of the object.
 
- Protected Attributes inherited from AAbstractThread
id mId
 Thread ID.
 
AString mThreadName
 
AMessageQueue mMessageQueue
 

The documentation for this class was generated from the following files:
Inheritance diagram for AThreadPool::Worker:
Collaboration diagram for AThreadPool::Worker: