discoLight
Loading...
Searching...
No Matches
RunnableClass.h
Go to the documentation of this file.
1
30#ifndef RUNNABLECLASS_H_
31#define RUNNABLECLASS_H_
32
33#include <thread>
34#include <string>
35#include <list>
36#include <sys/types.h>
37
38#define RT_SCHEDULER_TO_USE (SCHED_FIFO)
39
40namespace SWE4211RPi {
41
46protected:
50 static std::list<RunnableClass*> runningThreads;
51
56 std::thread *myThread = NULL;
57
61 pthread_t executingThread = 0;
62
63
67 pid_t myOSThreadID = 0;
68
72 std::string myName;
73
77 bool keepGoing = true;
78
82 bool runCompleted = false;
83
87 bool runStarted = false;
88
93 int priority = -1;
94
95private:
99 virtual void invokeRunMethod() final;
100
101public:
107 RunnableClass(std::string threadName, int priority=0);
108
112 virtual ~RunnableClass();
113
117 static void printThreads();
118
123 static void resetAllThreadInformation();
124
128 virtual void resetThreadDiagnostics();
129
133 virtual void printInformation();
134
138 virtual double getCPUUsageInfo();
139
144 virtual pid_t getThreadID();
145
150 virtual void start() final;
151
156 virtual void setPriority(int priority) final;
157
162 virtual int getPriority() final;
163
167 virtual void run()=0;
168
173 virtual bool isShutdown() final;
174
179 virtual bool isStarted() final;
180
184 virtual void stopThreadExecution() ;
185
191 virtual void waitForShutdown();
192
193protected:
199 virtual void startChildRunnables();
200
206 virtual void stopChildRunnables();
207};
208}
209#endif /* RUNNABLECLASS_H_ */
Definition RunnableClass.h:45
virtual void startChildRunnables()
Definition RunnableClass.cpp:203
std::thread * myThread
Definition RunnableClass.h:56
static std::list< RunnableClass * > runningThreads
Definition RunnableClass.h:50
static void resetAllThreadInformation()
Definition RunnableClass.cpp:115
virtual double getCPUUsageInfo()
Definition RunnableClass.cpp:73
pid_t myOSThreadID
Definition RunnableClass.h:67
int priority
Definition RunnableClass.h:93
virtual void start() final
Definition RunnableClass.cpp:188
virtual void invokeRunMethod() final
Definition RunnableClass.cpp:153
bool runCompleted
Definition RunnableClass.h:82
std::string myName
Definition RunnableClass.h:72
virtual void stopThreadExecution()
Definition RunnableClass.cpp:227
virtual bool isStarted() final
Definition RunnableClass.cpp:220
virtual void setPriority(int priority) final
Definition RunnableClass.cpp:270
bool keepGoing
Definition RunnableClass.h:77
virtual void waitForShutdown()
Definition RunnableClass.cpp:252
virtual void printInformation()
Definition RunnableClass.cpp:133
virtual void stopChildRunnables()
Definition RunnableClass.cpp:210
virtual int getPriority() final
Definition RunnableClass.cpp:294
bool runStarted
Definition RunnableClass.h:87
virtual void resetThreadDiagnostics()
Definition RunnableClass.cpp:126
static void printThreads()
Definition RunnableClass.cpp:83
virtual void run()=0
virtual bool isShutdown() final
Definition RunnableClass.cpp:243
pthread_t executingThread
Definition RunnableClass.h:61
virtual pid_t getThreadID()
Definition RunnableClass.cpp:107