#pragma once #include #include "CriticalSection.h" typedef struct ST_BILLUSER //ºô¸µ À¯Àú Á¤º¸ ±¸Á¶Ã¼ { long dwBillingGUID; //ºô¸µ µðºñ¿¡¼­ »ç¿ëÇÏ´Â À¯´ÏÅ© ¾ÆÀ̵ð DWORD dwAccountGUID; //¾ÆÀ̵ð GUID DWORD dwIPAddress; //Ŭ¶óÀÌ¾ðÆ® ¾ÆÀÌÇÇ ÁÖ¼Ò DWORD dwRoomGUID; //PC ¹æ GUID DWORD dwGameCode; //°ÔÀÓ ÄÚµå DWORD dwServerType; //Å×¼·ÀÎÁö ¶óÀ̺êÀÎÁö ±¸ºÐ ÄÚµå DWORD RealEndDate; //Á¤¾×Àϰæ¿ì ½ÇÁ¦ Á¾·áÀÏÀÚ (ƯÁ¤ ½Ã°£ Á¤¾×ÀÏ °æ¿ì Àû¿ë) DWORD EndDate; //Á¤¾×Àϰæ¿ì °áÀç Á¾·áÀÏÀÚ double dRestPoint; //Á¤·®ÀÏ °æ¿ì ÀÜ¿©Æ÷ÀÎÆ® double dRestTime; //Á¤·®ÀÏ °æ¿ì ½Ã°£ (Sec) short sDeductType; //»ç¿ëÀÚ Â÷°¨ À¯Çü long nDeductTime; //Â÷°¨ÇØ¾ß ÇÒ ½Ã°£ LPVOID pSession; //Ŭ¶óÀÌ¾ðÆ® ¼¼¼Ç Á¤º¸ }BILLUSER, *pBILLUSER; class CUserMap { public: CUserMap(void); ~CUserMap(void); //»ç¿ëÀÚ¸¦ Ãß°¡ÇÑ´Ù. void Add(BILLUSER user); //»ç¿ëÀÚ¸¦ Á¦°ÅÇÑ´Ù. bool Remove(long nKey); // ¸Ê¿¡¼­ »ç¿ëÀÚ¸¦ °Ë»öÇÑ´Ù. bool Find(long nGuid, BILLUSER& billingbuser); // ¸ÊÀ» ÃʱâÈ­ ÇÑ´Ù. void Clear(); // ÇöÀç À¯Àú ¼ö¸¦ ¸®ÅÏÇÑ´Ù. int GetSize(); //¼¼¼ÇÀÌ Á¾·áµÈ »ç¿ëÀÚµéÀ» µ¹·ÁÁØ´Ù. void GetCloseUsers(LPVOID pSession, std::vector& vec); //¸ðµç À¯Á®¸¦ °¡Á®¿Â´Ù. void GetAllUsers(std::vector& vec, DWORD dwCurrentTime); //¶óÀ̺ê üũ À¯Àú¸¦ °¡Á®¿Â´Ù. void GetLiveCheckUsers(std::vector& vec); private: stdext::hash_map m_usermap; //µ¿±âÈ­ °ü·Ã°´Ã¼ WZPUBLIC::CriticalSection m_cs; };