#pragma once #include "MemPooler.h" #include "IOCPProcessThreadDef.h" #include "IOCPDefinition.h" class AFX_EXT_CLASS CMemoryPool : public IIOCPProcessThread { public: CMemoryPool(); virtual ~CMemoryPool(); virtual void ProcessingThread() = 0; protected: SOCKET m_ListenSocket; // ¸®½¼ ¼ÒÄÏ CMemPooler * m_pPerSocketCtxMemPool; CMemPooler * m_pRecvMemPool; CMemPooler * m_pSendMemPool; pPerSocketContext AllocPerSocketContext(SOCKET clientSocket); // PerSocketContext ¸Þ¸ð¸® ÇÒ´ç int GetSocketContextAllocCount(); void DeallocPerSocketContext(pPerSocketContext pPerSocketCtx); // PerSocketContext ¸Þ¸ð¸® Á¦°Å private: pPerIoContext AllocPerIoContextForSend(void); // PerSendIoContext ¸Þ¸ð¸® ÇÒ´ç pPerIoContext AllocPerIoContextForRecv(void); // PerRecvIoContext ¸Þ¸ð¸® ÇÒ´ç void DeallocPerIoContextForRecv(pPerIoContext pPerIoCtx); // PerRecvIoContext ¸Þ¸ð¸® Á¦°Å void DeallocPerIoContextForSend(pPerIoContext pPerIoCtx); // PerSendIoContext ¸Þ¸ð¸® Á¦°Å };