#pragma once #include #include struct ABUSING_OPTION_INFO { char m_szCategoryName[64]; char m_szViolationName[64]; BYTE m_AbuseType; // ·ÎÁ÷À§¹Ý, °­Á¦Á¾·á, ºí¶ô, ÀÛ¾÷Àå, Áߺ¹½Ã¸®¾ó, Å©·¡½¬ BYTE m_AbuseSubType; // ¼¼ºÎ ·ÎÁ÷À§¹Ý ŸÀÔ BYTE m_bDisconnect; // Çѹø À§¹Ý½Ã Disconnect ¿©ºÎ BYTE m_Level; // Level1, Level2, Level3(Å©¸®Æ¼Äà À§¹Ý), Level4(°­Á¦Á¾·á), Level5(ºí¶ô) WORD m_MilestoneCount; // º¸°í¸¦ À§ÇÑ À§¹ÝȽ¼ö WORD m_IncAbusingPoint; // À§¹Ý¿¡ µû¸¥ ¾îºä¡ Á¡¼ö WORD m_MaxAbusingPoint; // ÇØ´çÀ§¹Ý¿¡ µû¸¥ ÃÖ´ë ¾îºä¡ Á¡¼ö }; class AbusingOptionParser : public util::Singleton, public IParser { public: AbusingOptionParser(); ~AbusingOptionParser(); public: // (CHANGES)(20100311)(hukim) Init(), Release() ¿À¹ö¶óÀ̵ù ¸Þ¼­µå È¥µ¿À» ¸·±â À§ÇØ virtual Ű¿öµå Ãß°¡ // (CHANGES)(20100311)(hukim) GetAbusingOptionInfo() ³»ºÎ º¯°æÀ» ÀÏÀ¸Å°Áö ¾Ê±â ¶§¹®¿¡ const Ãß°¡ virtual VOID Init(DWORD pool_size); virtual VOID Release(); virtual BOOL LoadScript(eSCRIPT_CODE script_code, BOOL is_reload); ABUSING_OPTION_INFO* GetAbusingOptionInfo(BYTE abuse_sub_type) const; private: // (CHANGES)(20100311)(hukim) LoadOptionInfo() Load()¶ó´Â À̸§ÀÇ ¸Þ¼­µå°¡ ºÎ¸ð Ŭ·¡½º¿¡ ÀÌ¹Ì Á¸Àç // Çϱ⠶§¹®¿¡ ¿À¹ö·Îµù¿¡ ´ëÇÑ È¥µ¿À» ¸·±â À§ÇØ _Load()¿¡¼­ LoadOptionInfo()·Î À̸§ º¯°æ BOOL LoadOptionInfo(BOOL is_reload); private: // (CHANGES)(20100311)(hukim) ABUSING_OPTION_TABLE_IT´Â »ç¿ëµÇ´Â °÷ÀÌ ¾ø±â ¶§¹®¿¡ ÁÖ¼® ó¸® // (CHANGES)(20100311)(hukim) m_pszFileName´Â »ç¿ëµÇ´Â °÷ÀÌ ¾ø±â ¶§¹®¿¡ ÁÖ¼® ó¸® typedef STLX_MAP ABUSING_OPTION_TABLE; ABUSING_OPTION_TABLE abusing_option_table_; //typedef ABUSING_OPTION_TABLE::iterator ABUSING_OPTION_TABLE_IT; //char m_pszFileName[MAX_PATH]; private: // (CHANGES)(20100309)(hukim) ½Ì±ÛÅæ °´Ã¼À̹ǷΠº¹»ç°¡ ÀϾ¼± ¾ÈµÇ±â ¶§¹®¿¡ __DISABLE_COPY() Ãß°¡ __DISABLE_COPY(AbusingOptionParser); };