8 #include "Arp/System/Commons/Threading/Thread.hpp"    10 namespace Arp { 
namespace System { 
namespace Commons { 
namespace Threading
    28     template<
class TInstance, 
class TFunction>
    29     WorkerThread(TInstance& instance, TFunction fn, 
int idleTime, 
const char* threadName);
    37     template<
class TInstance, 
class TFunction>
    38     WorkerThread(
const TInstance& instance, TFunction fn, 
int idleTime, 
const char* threadName);
    46     template<
class TInstance, 
class TFunction>
    47     WorkerThread(TInstance* pInstance, TFunction fn, 
int idleTime, 
const char* threadName);
    55     template<
class TInstance, 
class TFunction>
    56     WorkerThread(
const TInstance* pInstance, TFunction fn, 
int idleTime, 
const char* threadName);
    64     template<
class TInstance, 
class TFunction>
    73     template<
class TInstance, 
class TFunction>
    82     template<
class TInstance, 
class TFunction>
    91     template<
class TInstance, 
class TFunction>
    99     explicit WorkerThread(WorkDelegate&& loopDelegate, 
int idleTime, 
const char* threadName);
   125     static void RunInternal(
void* pParam);
   130     std::atomic<bool> stopWorking{
false};
   131     std::atomic<bool> isStarted{
false};
   138 template<
class TInstance, 
class TFunction>
   144 template<
class TInstance, 
class TFunction>
   150 template<
class TInstance, 
class TFunction>
   158 template<
class TInstance, 
class TFunction>
   173 template<
class TInstance, 
class TFunction>
   179 template<
class TInstance, 
class TFunction>
   185 template<
class TInstance, 
class TFunction>
   187     : thread(settings, &
WorkerThread::RunInternal, (void*)this)
   188     , idleTime(idleTimeArg)
   193 template<
class TInstance, 
class TFunction>
   195     : thread(settings, &
WorkerThread::RunInternal, (void*)this)
   196     , idleTime(idleTimeArg)
   202     : thread(settings, &
WorkerThread::RunInternal, (void*)this)
   203     , idleTime(idleTimeArg)
 delegate< R(A...)> make_delegate(R(*const function_ptr)(A...)) noexcept
Creates a delegate from a static function.
Definition: delegate.hxx:215
 
void Start(void)
Starts the execution of the thread.
 
Worker threads repeat the execution of the threaded code until Stop is called.
Definition: WorkerThread.hpp:14
 
~WorkerThread(void)=default
Deallocates the memory used for this instance but does not quit the thread.
 
The Thread-class provides methods to execute functions and methods in a separate thread.
Definition: Thread.hpp:91
 
void Stop(void)
Stops the execution of the thread syncronously.
 
bool IsRunning(void) const
Determines if this thread is in running state.
Definition: Thread.hpp:612
 
bool IsRunning(void) const
Checks if the thread is in running state.
Definition: WorkerThread.hpp:209
 
delegate< void(void)> WorkDelegate
The delegate of threads loop body.
Definition: WorkerThread.hpp:18
 
Container class for adaptable thread settings.
Definition: ThreadSettings.hpp:12
 
Root namespace for the PLCnext API
 
WorkerThread(TInstance &instance, TFunction fn, int idleTime, const char *threadName)
Constructs an WorkerThread instance for a class method.
Definition: WorkerThread.hpp:139
 
System components used by the System, Device, Plc or Io domains.