#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<PerSocketContext> * m_pPerSocketCtxMemPool;
|
CMemPooler<PerIoContext> * m_pRecvMemPool;
|
CMemPooler<PerIoContext> * 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 ¸Þ¸ð¸® Á¦°Å
|
};
|