#pragma once //============================================================================================================================= /// ScriptLoader class /** @author Lee Eun-pa @since 2006. 08. 21 @remark - SolarAuthServer @note - SolarAuthServer ¿¡¼­ ÀоîµéÀÌ´Â ½ºÅ©¸³Æ® ¸ñ·Ï¿¡ ±â¹ÝÇØ ÇØ´ç ÆÄÀÏÀ» ÀоîµéÀ̴ Ŭ·¡½º @history - */ //============================================================================================================================= struct sSCRIPT_DATA_STREAM_INFO { DWORD m_dwFileSize; DWORD m_CompressSize; BYTE* m_pDataStream; }; // // // class ScriptLoader; //#include #include typedef Delegator SCRIPT_DATA_STREAM_DELEGATOR; typedef STLX_MAP SCRIPT_DATA_STREAM_HASH; typedef SCRIPT_DATA_STREAM_HASH::iterator SCRIPT_DATA_STREAM_HASH_IT; typedef std::pair SCRIPT_DATA_STREAM_PAIR; typedef Delegator SCRIPT_LOADER; // // // class ScriptLoader { public: ScriptLoader(); ~ScriptLoader(); public: BOOL Load( const eSCRIPT_CODE scriptKey, const CHAR* pszFileName, BOOL bReload = FALSE ); SCRIPT_DATA_STREAM_DELEGATOR& GetScriptDataStream( eSCRIPT_CODE scriptKey ); public: VOID UnloadAll(); private: VOID _Init(); VOID _Release(); VOID _ReleaseNode( SCRIPT_DATA_STREAM_PAIR record ); BOOL _ReleaseNodeByKey( eSCRIPT_CODE scriptKey ); private: // BOOL m_bInited; SCRIPT_DATA_STREAM_HASH m_ScriptDataList; SCRIPT_DATA_STREAM_DELEGATOR m_EmptyData; }; //------------------------------------------------------------------ // Singleton by Private //class ScriptListLoader //{ //private: // ScriptListLoader(); // ~ScriptListLoader(); // //public: // static ScriptListLoader* s_Instance; // static ScriptListLoader* GetInstance() // { // if( s_Instance ) // return s_Instance; // // s_Instance = new ScriptListLoader(); // return s_Instance; // } //};