gatelib  2.1
g_mthread_ThreadAbstract.h
1 #pragma once
2 
3 #include "g_mthread_Thread.h"
4 
5 namespace g
6 {
7 namespace mthread
8 {
9 
10 enum ThreadState_t
11 {
12  running = 0 ,
13  detached ,
14  terminated
15 };
16 
17 //Abstract thread with entry point
18 class G_LIB_ITEM ThreadAbstract : public Thread
19 {
20  G_COPY_CONSTRUCTOR_PROHIBITED(ThreadAbstract);
21 public:
22  // Create a thread
23  ThreadAbstract ( );
24  virtual ~ThreadAbstract ( );
25 
26  void start ( void* par = NULL , const char* thread_name = NULL );
27  virtual void* join ( );
28  virtual const void* detach ( );
29 
30  ThreadState_t getThreadState ( ) const { return mThreadState; }
31 
32 protected:
33  static void* m_EntryPoint ( void* aCallingClass );
34  virtual void mEntryPoint ( void* ) = 0;
35 
36  ThreadState_t mThreadState;
37  void* mReturnedValue;
38  void* mPar;
39 };
40 
41 }//namespace mthread
42 }//namespace g
Definition: g.mthread.ThreadSimpleEvent.h:5
Definition: g_mthread_Thread.h:36
Definition: g_mthread_ThreadAbstract.h:18