Plasma Engine  2.0
Loading...
Searching...
No Matches
plThreadWithDispatcher Class Referenceabstract

This class is the base class for threads which need dispatching of calls. More...

#include <ThreadWithDispatcher.h>

Inheritance diagram for plThreadWithDispatcher:

Public Types

using DispatchFunction = plDelegate<void(), 128>
 
- Public Types inherited from plThread
enum  plThreadStatus { Created = 0 , Running , Finished }
 Describes the thread status.
 

Public Member Functions

 plThreadWithDispatcher (const char *szName="plThreadWithDispatcher", plUInt32 uiStackSize=128 *1024)
 Initializes the runnable class.
 
virtual ~plThreadWithDispatcher ()
 Destructor checks if the thread is deleted while still running, which is not allowed as this is a data hazard.
 
void Dispatch (DispatchFunction &&delegate)
 Use this to enqueue a function call to the given delegate at some later point running in the given thread context.
 
- Public Member Functions inherited from plThread
 plThread (plStringView sName="plThread", plUInt32 uiStackSize=128 *1024)
 Initializes the runnable class.
 
virtual ~plThread ()
 Destructor checks if the thread is deleted while still running, which is not allowed as this is a data hazard.
 
plThreadStatus GetThreadStatus () const
 Returns the thread status.
 
bool IsRunning () const
 Helper function to determine if the thread is running.
 
const char * GetThreadName () const
 Returns the thread name.
 
- Public Member Functions inherited from plOSThread
 plOSThread (plOSThreadEntryPoint threadEntryPoint, void *pUserData=nullptr, plStringView sName="plOSThread", plUInt32 uiStackSize=128 *1024)
 Initializes the thread instance (e.g. thread creation etc.)
 
virtual ~plOSThread ()
 Destructor.
 
void Start ()
 Starts the thread.
 
void Join ()
 Waits in the calling thread until the thread has finished execution (e.g. returned from the thread function)
 
const plThreadID & GetThreadID () const
 Returns the thread ID of the thread object, may be used in comparison operations with plThreadUtils::GetCurrentThreadID() for example.
 

Protected Member Functions

void DispatchQueue ()
 Needs to be called by derived thread implementations to dispatch the function calls.
 

Private Member Functions

virtual plUInt32 Run ()=0
 The run function can be used to implement a long running task in a thread in a platform independent way.
 

Additional Inherited Members

- Static Public Member Functions inherited from plThread
static const plThreadGetCurrentThread ()
 Returns the current plThread if the current platform thread is an plThread. Returns nullptr otherwise.
 
- Static Public Member Functions inherited from plOSThread
static plInt32 GetThreadCount ()
 Returns how many plOSThreads are currently active.
 
- Static Public Attributes inherited from plThread
static plEvent< const plThreadEvent &, plMutexs_ThreadEvents
 These events inform about threads starting and finishing.
 
- Protected Attributes inherited from plOSThread
plThreadHandle m_hHandle
 
plThreadID m_ThreadID
 
plOSThreadEntryPoint m_EntryPoint
 
void * m_pUserData
 
plString m_sName
 
plUInt32 m_uiStackSize
 

Detailed Description

This class is the base class for threads which need dispatching of calls.

Used by deriving from this class and overriding the Run() method. Call DispatchQueue() regurarely so that the collected messages can be dispatched.

Member Function Documentation

◆ Run()

virtual plUInt32 plThreadWithDispatcher::Run ( )
privatepure virtual

The run function can be used to implement a long running task in a thread in a platform independent way.

Implements plThread.


The documentation for this class was generated from the following files: