nwiocompletionport.h

来自「这是我做的一个iocp的服务器端的测试代码」· C头文件 代码 · 共 45 行

H
45
字号
#pragma once

#include "NWWorkerThread.h" 
#include "IMessageProcess.h"
class CIOCompletionPort
{
public:
	explicit CIOCompletionPort( size_t maxConcurrency = 0);
	virtual ~CIOCompletionPort(void);
	//绑定驱动
	int BindDevice( HANDLE hDevice, ULONG_PTR completionKey );

	void PostStatus( ULONG_PTR completionKey, 
		DWORD dwNumBytes = 0, 
		OVERLAPPED *pOverlapped = 0 );

	DWORD GetStatus( ULONG_PTR *pCompletionKey, 
		PDWORD pdwNumBytes,
		OVERLAPPED **ppOverlapped );

	DWORD GetStatus( ULONG_PTR *pCompletionKey, 
		PDWORD pdwNumBytes,
		OVERLAPPED **ppOverlapped, 
		DWORD dwMilliseconds );
	//启动工作线程
	int StartWorkerThreads();
	int StopWorkerThreads();
	int InitWorkerThreads(int nThreadNumber,IMessageProcess * pcMessageProccess,CSocketServer * pcSockServer);
	int UninitWorkerThreads();
	static CIOCompletionPort * GetInstance()
	{
		return & m_Instance ;
	}
protected:
	static CIOCompletionPort m_Instance ;
private:

	HANDLE m_iocp;
	MyWorkerThreadList m_lsWorkerThreadList ;
	/*
	* No copies do not implement
	*/
	CIOCompletionPort( const CIOCompletionPort &rhs );
	CIOCompletionPort &operator=( const CIOCompletionPort &rhs );
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?