ifw-core  5.0.0-pre2
taskPoll.hpp
Go to the documentation of this file.
1 
9 #ifndef CORE_PROTOCOL_OPEN62541_TASK_POLL_H_
10 #define CORE_PROTOCOL_OPEN62541_TASK_POLL_H_
11 
12 // System headers
13 #include <string>
14 #include <thread>
15 #include <atomic>
16 #include <chrono>
17 // Local headers
18 
19 namespace protocol::opcua {
28  class TaskPoll {
29  public:
30 
38  TaskPoll(std::chrono::milliseconds period);
39 
43  virtual ~TaskPoll();
44 
52  void Run();
53 
54  void StartThread();
55  void StopThread();
56  bool IsRunning();
57 
58  TaskPoll(const TaskPoll&) = delete;
59  TaskPoll& operator= (const TaskPoll&) = delete;
60 
61  private:
62 
63  std::chrono::milliseconds m_period;
64 
66  std::thread m_poll_thread;
67 
69  std::atomic<bool> m_stopped {false};
70 
71 
72  };
73 
74 } // namespace
75 
76 #endif // CORE_PROTOCOL_OPEN62541_TASK_POLL_H_
Definition: taskPoll.hpp:28
TaskPoll(const TaskPoll &)=delete
Disable copy constructor.
void StopThread()
Definition: taskPoll.cpp:40
void Run()
Thread run method.
Definition: taskPoll.cpp:52
bool IsRunning()
Definition: taskPoll.cpp:107
TaskPoll & operator=(const TaskPoll &)=delete
Disable assignment operator.
virtual ~TaskPoll()
Default destructor.
Definition: taskPoll.cpp:29
void StartThread()
Definition: taskPoll.cpp:33
TaskPoll(std::chrono::milliseconds period)
Class constructor.
Definition: taskPoll.cpp:23
Definition: iDataChangeHandler.hpp:25