网狐棋牌QueueService
1.IQueueService,在SetQueueServiceSink函数中,设置IQueueServiceSink事件钩子。
2.IQueueServiceSink:
通知回调函数
//////////////////////////////////////////////////////////////////////////
//函数名:OnQueueServiceSink
//WORD wIdentifier:事件数据标记
//void * pBuffer:数据指针
//WORD wDataSize:数据大小
//////////////////////////////////////////////////////////////////////////
3.CQueueServiceThread: public CWHThread
//配置函数
bool InitThread(HANDLE hCompletionPort);
//取消配置
bool UnInitThread();
//运行函数(此函数是运行在线程中)
virtual bool OnEventThreadRun();
从队列中取出一个事件包,然后处理OnQueueServiceThread
4.CQueueService:publicIQueueService
队列处理线程类
//开始服务
virtual bool
StartService();
//停止服务
virtual bool
ConcludeService();
//线程句柄
HANDLE
GetThreadHandle();
//队列接口
//加入数据
virtual bool
AddToQueue(WORD wIdentifier, void * const pBuffer, WORD wDataSize);
//设置接口
virtual bool
SetQueueServiceSink(IUnknownEx * pIUnknownEx);
//负荷信息
virtual bool
GetBurthenInfo(tagBurthenInfo & BurthenInfo);
//提取数据
bool
GetData(tagDataHead & DataHead, void * pBuffer, WORD wBufferSize);
//数据消息
事件消息,主要由队列线程调用,内部调用OnQueueServiceSink
void
OnQueueServiceThread(const tagDataHead & DataHead, void * pBuffer, WORD wDataSize);
类继承