32 #ifndef _NPT_THREADS_H_ 33 #define _NPT_THREADS_H_ 39 #include "NptConstants.h" 40 #include "NptInterfaces.h" 45 const int NPT_ERROR_CALLBACK_HANDLER_SHUTDOWN = NPT_ERROR_BASE_THREADS-0;
46 const int NPT_ERROR_CALLBACK_NOTHING_PENDING = NPT_ERROR_BASE_THREADS-1;
51 const int NPT_THREAD_PRIORITY_MIN = -15;
52 const int NPT_THREAD_PRIORITY_IDLE = -15;
53 const int NPT_THREAD_PRIORITY_LOWEST = -2;
54 const int NPT_THREAD_PRIORITY_BELOW_NORMAL = -1;
55 const int NPT_THREAD_PRIORITY_NORMAL = 0;
56 const int NPT_THREAD_PRIORITY_ABOVE_NORMAL = 1;
57 const int NPT_THREAD_PRIORITY_HIGHEST = 2;
58 const int NPT_THREAD_PRIORITY_TIME_CRITICAL = 15;
59 const int NPT_THREAD_PRIORITY_MAX = 15;
69 virtual NPT_Result Lock() = 0;
70 virtual NPT_Result Unlock() = 0;
81 ~
NPT_Mutex()
override {
delete m_Delegate; }
82 NPT_Result Lock()
override {
return m_Delegate->Lock(); }
83 NPT_Result Unlock()
override {
return m_Delegate->Unlock(); }
112 template <
typename T>
140 virtual void SetValue(
int value)= 0;
141 virtual int GetValue() = 0;
142 virtual NPT_Result WaitUntilEquals(
int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
143 virtual NPT_Result WaitWhileEquals(
int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
155 void SetValue(
int value)
override {
156 m_Delegate->SetValue(value);
158 int GetValue()
override {
159 return m_Delegate->GetValue();
161 NPT_Result WaitUntilEquals(
int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE)
override {
162 return m_Delegate->WaitUntilEquals(value, timeout);
164 NPT_Result WaitWhileEquals(
int value, NPT_Timeout timeout = NPT_TIMEOUT_INFINITE)
override {
165 return m_Delegate->WaitWhileEquals(value, timeout);
181 virtual int Increment() = 0;
182 virtual int Decrement() = 0;
183 virtual int GetValue() = 0;
184 virtual void SetValue(
int value) = 0;
196 int Increment()
override {
return m_Delegate->Increment();}
197 int Decrement()
override {
return m_Delegate->Decrement();}
198 void SetValue(
int value)
override { m_Delegate->SetValue(value); }
199 int GetValue()
override {
return m_Delegate->GetValue(); }
213 virtual void Run() = 0;
224 virtual NPT_Result Start() = 0;
225 virtual NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE) = 0;
226 virtual NPT_Result SetPriority(
int ) {
return NPT_SUCCESS; }
227 virtual NPT_Result CancelBlockerSocket() = 0;
228 virtual NPT_Result GetPriority(
int& priority) = 0;
238 typedef NPT_UInt64 ThreadId;
241 static ThreadId GetCurrentThreadId();
242 static NPT_Result SetCurrentThreadPriority(
int priority);
243 static NPT_Result GetCurrentThreadPriority(
int& priority);
251 NPT_Result CancelBlockerSocket()
override {
return m_Delegate->CancelBlockerSocket(); }
254 NPT_Result Start()
override {
255 return m_Delegate->Start();
257 NPT_Result Wait(NPT_Timeout timeout = NPT_TIMEOUT_INFINITE)
override {
258 return m_Delegate->Wait(timeout);
260 NPT_Result SetPriority(
int priority)
override {
261 return m_Delegate->SetPriority(priority);
263 NPT_Result GetPriority(
int& priority)
override {
264 return m_Delegate->GetPriority(priority);
268 void Run()
override {}
271 NPT_Result Interrupt()
override {
return m_Delegate->Interrupt(); }
286 virtual void OnCallback(
void* args) = 0;
299 virtual void Notify(
void) = 0;
307 NPT_Result SendCallback(
void* args);
309 NPT_Result Shutdown();
313 volatile void* m_CallbackArgs;
314 volatile bool m_Shutdown;
322 #endif // _NPT_THREADS_H_ Definition: NptThreads.h:234
Definition: NptInterfaces.h:81
Definition: NptThreads.h:209
Definition: NptThreads.h:76
Definition: NptThreads.h:176
Definition: NptThreads.h:149
Definition: NptThreads.h:190
Definition: NptThreads.h:93
Definition: NptThreads.h:64
Definition: NptThreads.h:282
Definition: NptThreads.h:113
Definition: NptThreads.h:219
Definition: NptThreads.h:121
Definition: NptThreads.h:296
Definition: NptThreads.h:135
Definition: NptThreads.h:292