/*************************************************************************** Local Ip Cache Class ----------------------------------------- begin : 2010/03/31 copyright : (C) 2005 SolutionBox Inc. author : Service 1 Team email : svc1@solbox.com version : 1.0 CopyRight(C) 2005 SolutionBox Inc. All Rights reserved. Redistribution and use in source and binary forms, with or with out modification, are not permitted in outside of SolutionBox Inc. ***************************************************************************/ #ifndef __LOCAL_IP_CACHE__ #define __LOCAL_IP_CACHE__ #include #include #include #include #include #include #include #include "Logger.h" using namespace std; /// @brief CLocalIPCache /// CLocalIPCache´Â »ý¼ºÀÚÀÇ µÎ ¹øÂ° paramÀ¸·Î ÀÔ·ÂÇÑ NIC¸íÀÇ /// IPÁ¤º¸¸¦ Àü´Þ ÇØÁִ Ŭ·¡½ºÀÌ´Ù. /// ÁÖ¿ä ÀÎÅÍÆäÀ̽º ÇÔ¼ö´Â ¾²·¹µå¸¦ ½ÃÀÛ ÇÏ´Â start()ÇÔ¼ö¿Í /// IP¸¦ ¾ò¾î¿À´Â GetLocalIP() ÇÔ¼öÀÌ´Ù. /// /// ³»ºÎÀûÀ¸·Î Thread¸¦ »ç¿ëÇϰíÀÖ´Ù. class CLocalIPCache { public: /// @brief »ý¼ºÀÚ /// @param [in] szNICName ÇöÀç Ŭ·¡½º¸¦ »ç¿ëÇÏ¿© IPÁ¤º¸¸¦ ¾òÀ» NIC ÀåºñÀÇ À̸§À» ÀÔ·ÂÇÑ´Ù. CLocalIPCache( const string& szNICName ); ~CLocalIPCache(); /// @brief Thread¸¦ »ý¼ºÇϰí, À̸¦ ½ÃÀÛÇÑ´Ù. /// @param none /// @return ¼º°øÀº return true ½ÇÆÐ´Â return false bool Start(); /// @brief »ý¼ºÀÚÀÇ µÎ ¹øÂ° paramÀ¸·Î ÀÔ·ÂµÈ NIC ÀåºñÀÇ IPÁ¤º¸¸¦ ¸®ÅÏÇÑ´Ù. /// @param [out] szLocalIP ¿äûÇÑ NIC¿¡ ÇØ´çÇÏ´Â IP°ªÀ» Àü´ÞÇÑ´Ù. /// @return ¼º°øÀº return true, ½ÇÆÐÇϸé false. bool GetLocalIP(string& szLocalIP); private: // ÀԷ¹ÞÀº NIC ¸í. string m_szNICName; // ÇØ´ç NICÀÇ ip¸¦ ÀԷ¹޴´Ù. string m_szLocalIP; pthread_mutex_t m_mxLock; // ¾²·¹µå ÇÚµé pthread_t m_threadHandle; // ¾²·¹µå ½ÃÀÛ ·çƾÀÌ´Ù. static void* EntryPoint(void* arg); // ÇØ´ç ÇÔ¼öÀÇ ³»¿ëÀº ¼öÁ¤ÇÏÁö ¸»°Í. void Excute(); // m_szNICName ÇØ´ç NICÀÇ ipÁ¤º¸¸¦ ¾ò´Â ÇÔ¼öÀÌ´Ù. bool GetIP(string& szLocalIP); }; #endif // __LOCAL_IP_CACHE__