#pragma once
|
|
|
#include "akNetworkLinker.h"
|
|
class AKNETWORK_DLLSPEC CakThreadInterface
|
{
|
public:
|
CakThreadInterface(void){};
|
~CakThreadInterface(void){};
|
|
virtual void threadRun()=0;//Index 0 À϶§
|
virtual void threadRun1(){};//Index 1 À϶§(ÇÑŬ·¡½º¿¡¼ ¾²·¹µå 2°³ µ¹¸±¶§)
|
virtual void threadRun2(){};//Index 2 À϶§(ÇÑŬ·¡½º¿¡¼ ¾²·¹µå 3°³ µ¹¸±¶§)
|
virtual void threadRun3(){};//Index 3 À϶§(ÇÑŬ·¡½º¿¡¼ ¾²·¹µå 4°³ µ¹¸±¶§)
|
};
|
|
enum THREADFLAG
|
{
|
TF_NONE,
|
TF_READY,
|
TF_RUN,
|
TF_PAUSE,
|
TF_END
|
};
|
enum THREADLASTSTATE
|
{
|
TS_RUN,
|
TS_PAUSE
|
};
|
class AKNETWORK_DLLSPEC CakThread
|
{
|
public:
|
CakThread(void);
|
~CakThread(void);
|
|
void CreateThread(CakThreadInterface* pParent, int nThreadIndex = 0);
|
void DeleteThread();
|
|
bool start(bool bSafe = false);
|
bool pause(bool bSafe = false);
|
|
public:
|
void setSleepTime(int val) { m_nSleepTime = val; }
|
int getSleepTime() const { return m_nSleepTime; }
|
|
THREADFLAG getThreadFlag() const { return m_nThreadFlag; }
|
|
protected:
|
static unsigned __stdcall akThreadFunc(void* arg);
|
|
protected:
|
int m_nThreadIndex;
|
unsigned int m_nThreadID;
|
HANDLE m_hThread;
|
HANDLE m_hPause;
|
int m_nSleepTime;
|
THREADFLAG m_nThreadFlag;
|
THREADLASTSTATE m_ThreadLastState;
|
|
CakThreadInterface* m_pParent;
|
|
};
|