raSystem  1.0 bata
raThread.h
Go to the documentation of this file.
1  class RAPI raThread
2  {
3  private:
4  class raThreadContext
5  {
6  public:
7  raThreadContext()
8  {
9  memset(this, 0, sizeof(this));
10  }
11  public:
12  HANDLE m_hThread;
13  DWORD m_dwTID;
14  LPVOID m_pUserData;
15  LPVOID m_pParent;
16  DWORD m_dwExitCode;
17  };
18  public:
19  raThread();
20  raThread(LPTHREAD_START_ROUTINE lpExternalRoutine);
21  ~raThread();
22 
23  DWORD Start(void* arg = NULL);
24  DWORD Stop (bool bForceKill = false);
25 
26  DWORD GetExitCode() const;
27 
28  void Attach(LPTHREAD_START_ROUTINE lpThreadStartRoutine );
29  void Detach(void);
30 
31  protected:
32  static DWORD WINAPI EntryPoint( LPVOID pArg);
33 
34  virtual DWORD Run( LPVOID arg );
35  virtual void ThreadCtor(){ }
36  virtual void ThreadDtor(){ }
37 
38  protected:
39  raThreadContext m_ThreadCtx;
40  LPTHREAD_START_ROUTINE m_pThreadStartRoutine;
41  };
raThreadContext m_ThreadCtx
Definition: raThread.h:39
virtual void ThreadDtor()
Definition: raThread.h:36
#define RAPI
Definition: raMain.h:11
LPTHREAD_START_ROUTINE m_pThreadStartRoutine
Definition: raThread.h:40
virtual void ThreadCtor()
Definition: raThread.h:35