#ifndef _RYL_SERVER_REQUEST_KEEPER_H_ #define _RYL_SERVER_REQUEST_KEEPER_H_ #include class CPacketDispatch; // ¼­¹ö°£ Åë½Å½Ã º¸³½ ÆÐŶ Á¤º¸¸¦ º¸°ü (ÇöÀç Àǹ̰¡ ¾øÀ¸³ª ÆÐŶAck°ü¸®¸¦ ÇØ¾ßÇÔ) class CServerRequestKeeper { public: // RequestÆÐŶ ±âº» ±¸Á¶Ã¼ struct RequestInfo { unsigned long m_dwClientRequest; CPacketDispatch* m_lpPacketDispatch; RequestInfo(unsigned long dwClientRequest, CPacketDispatch* lpPakcetDispatch) : m_dwClientRequest(dwClientRequest) , m_lpPacketDispatch(lpPakcetDispatch) {} RequestInfo() : m_dwClientRequest(0) , m_lpPacketDispatch(NULL) {} }; public: CServerRequestKeeper(); ~CServerRequestKeeper(); unsigned long Push(CPacketDispatch* lpPacketDispatch, unsigned long dwClientRequest); bool Pop(unsigned long dwRequestKey); void RemoveAllSelectDispatch(CPacketDispatch* lpPacketDispatch); // ParamÀ¸·Î µé¾î¿Â DispatchÀΰ͵éÀº ¸ñ·Ï¿¡¼­ ÀüºÎ »èÁ¦ bool GetRequest(unsigned long dwRequestKey, RequestInfo& Out_Info); // RequestÁ¤º¸ °¡Á®¿À±â private: typedef std::map isMapReqMap; isMapReqMap m_RequestMap; unsigned long m_RequestKey; CCSLock m_RequestMapLock; }; #endif