/** * @file NFConnectionManager.h * @brief ConnectionÀ» °ü¸®ÇÏ´Â °ü¸®°´Ã¼ * @remarks * @author °­µ¿¸í(edith2580@gmail.com) * @date 2009-05-09 */ #pragma once #include #include namespace NaveServer { /** * @class NFConnectionManager * @brief ƯÁ¤ÇÑ Ä¿³Ø¼Ç ¸®½ºÆ®¸¦ °ü¸®Çϱâ À§ÇÑ ¸Þ´ÏÁ® °´Ã¼ µ¿½Ã¿¡ ¿©·¯°³°¡ »ý±æ¼ö ÀÖ´Ù. * @remarks * * @par * @author Edith * @date 2009-08-28 */ class NFConnectionManager { public: NFConnectionManager(VOID); ~NFConnectionManager(VOID); public: /** * @brief ¸Þ´ÏÁ® ÃʱâÈ­ * @param iMaxCount °ü¸® °¡´ÉÇÑ ÃÖ´ë Ä¿³Ø¼Ç °³¼ö */ VOID Init(INT iMaxCount); /** * @brief À¯Àú¸¦ µî·Ï½ÃŲ´Ù. * @param pUser À¯ÀúÀÇ ¿¬°á°´Ã¼ Æ÷ÀÎÅÍ */ VOID Join(NFConnection* pUser); /** * @brief ÇØ´ç À妽ºÀÇ °´Ã¼¸¦ »èÁ¦ÇÑ´Ù. * @param iIndex »èÁ¦ÇÒ À妽º */ VOID Levae(INT iIndex); /** * @brief ÇöÀç µî·ÏµÈ ¿¬°á°´Ã¼ °³¼ö ¾ò±â * @return Ä¿³Ø¼Ç °³¼ö */ INT GetCount() { return m_iCount; } /** * @brief °ü¸®ÇÏ´Â ¿¬°á°´Ã¼ ÃÖ´ë °³¼ö * @return ÃÖ´ë ¿¬°á°´Ã¼ °³¼ö */ INT GetMaxCount() { return m_iMaxCount; } /** * @brief µî·ÏµÈ ¸ðµç ¿¬°á°´Ã¼¿¡ ÆÐŶÀ» Àü´ÞÇÑ´Ù. * @param pPackte º¸³¾ ÆÐŶ ¹öÆÛ * @param Len º¸³¾ ÆÐŶ »çÀÌÁî */ virtual VOID SendPostAll( CHAR* pPackte, INT Len ); /** * @brief µî·ÏµÈ ¸ðµç ¿¬°á°´Ã¼¿¡ ÆÐŶÀ» Àü´ÞÇÑ´Ù. * @param Packet º¸³¾ ÆÐŶ ±¸Á¶Ã¼ */ virtual VOID SendPostAll( NaveNet::NFPacket& Packet); VOID Draw(); private: /// ¿¬°á°´Ã¼ °ü¸® º¯¼ö std::vector m_vecConn; typedef std::vector::iterator iterConn; /// ÇöÀç µî·ÏµÈ ¿¬°á°´Ã¼ÀÇ °³¼ö INT m_iCount; /// °ü¸®°¡ °¡´ÉÇÑ ÃÖ´ë ¿¬°á°´Ã¼ÀÇ °³¼ö INT m_iMaxCount; /// Sync °´Ã¼ Nave::NFSync m_Lock; }; }