rad 6.2.0
Loading...
Searching...
No Matches
pthreadActivity.hpp
Go to the documentation of this file.
1
9#ifndef RAD_ACTIVITY_PTHREAD_HPP
10#define RAD_ACTIVITY_PTHREAD_HPP
11
12#include <rad/activity.hpp>
13
14#include <scxml4cpp/Activity.h>
15#include <scxml4cpp/Event.h>
16
17#include <pthread.h>
18
19#include <atomic>
20#include <string>
21
22namespace rad {
23
32 public:
33 explicit PthreadActivity(const std::string& id, const int cpu = -1, const int priotity = -1);
34
35 virtual ~PthreadActivity();
36
37 virtual void Run() = 0;
38
39 std::string GetName();
40 int SetName(const std::string& name);
41
42 int GetCPU() const;
43 int GetConfiguredCPU() const;
44 void SetConfiguredCPU(const int cpu);
45 int GetPriority();
46 int GetConfiguredPriority() const;
47 void SetConfiguredPriority(const int priority);
48
52 pthread_t GetNativeHandle() const override;
53
56
57 protected:
58 void StartThread() override;
59 void JoinThread() override;
60 bool IsThreadJoined() const override;
61
62 private:
63 std::atomic<bool> m_thread_id_valid;
64 pthread_t m_thread_id;
65 int m_cpu;
66 int m_priority;
67
68 static void* RunWrapper(void* arg);
69};
70
71} // namespace rad
72
73#endif // RAD_ACTIVITY_PTHREAD_HPP
Activity header.
Event header.
Definition pthreadActivity.hpp:31
int GetPriority()
Definition pthreadActivity.cpp:309
void SetConfiguredPriority(const int priority)
Definition pthreadActivity.cpp:343
void StartThread() override
Disable assignment operator.
Definition pthreadActivity.cpp:56
PthreadActivity(const PthreadActivity &)=delete
int GetConfiguredPriority() const
Definition pthreadActivity.cpp:334
virtual ~PthreadActivity()
Definition pthreadActivity.cpp:43
void JoinThread() override
Definition pthreadActivity.cpp:199
pthread_t GetNativeHandle() const override
Definition pthreadActivity.cpp:48
int SetName(const std::string &name)
Definition pthreadActivity.cpp:255
PthreadActivity & operator=(const PthreadActivity &)=delete
Disable copy constructor.
int GetCPU() const
Definition pthreadActivity.cpp:284
std::string GetName()
Definition pthreadActivity.cpp:232
PthreadActivity(const std::string &id, const int cpu=-1, const int priotity=-1)
Definition pthreadActivity.cpp:31
int GetConfiguredCPU() const
Definition pthreadActivity.cpp:292
void SetConfiguredCPU(const int cpu)
Definition pthreadActivity.cpp:301
virtual void Run()=0
bool IsThreadJoined() const override
Definition pthreadActivity.cpp:191
Definition activity.hpp:43
Definition actionsApp.cpp:23