Go to the documentation of this file.
5 #ifndef IFW_CCF_MPTK_THREAD_HPP_
6 #define IFW_CCF_MPTK_THREAD_HPP_
12 #include "rad/logger.hpp"
13 #include "rad/exceptions.hpp"
45 Thread(
const std::string& thread_id,
47 const double period = 0.1);
56 std::string
GetId()
const;
105 std::string m_thread_id;
109 uint64_t m_iteration_count;
111 double m_previous_start_time;
112 double m_next_execution;
113 bool m_thread_terminated;
114 bool m_gen_statistics;
115 struct sched_param m_sched_par;
117 std::unique_ptr<std::thread> m_sys_thread;
123 #endif // IFW_CCF_MPTK_THREAD_HPP_
bool GetExecFlag()
Check the Thread Execution Flag. The Thread Execution Flag shall be called regularly in the thread,...
Definition: thread.cpp:165
Definition: manager.hpp:15
ThreadExecControl
Thread execution control/status.
Definition: thread.hpp:33
std::string ToString() const
Generate ASCII output providing a status of the object.
@ THREAD_EXEC_STOPPED
Definition: thread.hpp:34
IFW CTD Multiprocessing Toolkit Thread base class.
Definition: thread.hpp:28
virtual void UserLogic()
User provided business logic. The UserLogic method need not execute an internal loop....
Definition: thread.cpp:120
std::string GetId() const
Return the thread ID.
Definition: thread.cpp:72
void Pause()
Pause the thread execution.
Definition: thread.cpp:154
virtual ~Thread()
Definition: thread.cpp:67
void Continue()
Continue a paused thread execution.
Definition: thread.cpp:159
MessageBus & MsgBus()
Get acces to the MessageBus associated with this thread object.
Definition: thread.cpp:182
void SetPriority(const int prio=-1)
If invoked, it will run the thread in real-time mode with the given priority [0; 99].
Definition: thread.cpp:108
bool Terminated() const
Returns true if thread no longer running.
Definition: thread.cpp:187
IFW CTD Multiprocessing Toolkit Message Bus.
Definition: messageBus.hpp:30
@ THREAD_EXEC_RUNNING
Definition: thread.hpp:35
void Run()
Method to invoke the user provided business logic of the thread. The method executes internally a loo...
Definition: thread.cpp:77
double GetDrift() const
Definition: thread.cpp:143
static std::map< std::string, Thread * > s_thread_registry
Definition: thread.hpp:30
void Stop()
Stop the thread execution.
Definition: thread.cpp:148
Thread(const std::string &thread_id, MessageBus &message_bus, const double period=0.1)
Constructor method, setting up the internal members.
Definition: thread.cpp:41
void SleepUntil(struct timespec *ts, int delay)
Adds "delay" nanoseconds to timespecs and sleeps until that time.
Definition: thread.cpp:17
void Start()
Start the thread execution.
Definition: thread.cpp:131
const std::string THREAD_REGISTRY
Definition: thread.hpp:18
@ THREAD_EXEC_PAUSED
Definition: thread.hpp:36