/* ==================================================================== * ÆÄ ÀÏ : CallbackStreamPAK.h * ¸ñ Àû : ¸®¼Ò½º¸¦ ¾²·¹µå·Î ·ÎµùÇϱâ À§ÇÑ I/OÀÎÅÍÆäÀ̽º (Gamebryo±â¹Ý Wrap) * ÀÛ ¼º ÀÚ : À̹ý¼® * ÀÛ ¼º ÀÏ : 2006.12 * ÁÖÀÇ»çÇ× : ¾²·¹µå¿¡¼­ Á¶½ÉÇØ¾ß ÇÏ´Â ¸ðµç »çÇ×!! * ¸¸¾à, °øÀ¯µ¥ÀÌÅ͸¦ ´Ã¸±½Ã Å©¸®Æ¼Äà ¼½¼ÇÀ» ÀÌ¿ëÇØ¼­ * öÀúÇÏ°Ô ¸·¾ÆÁÖ¼¼¿ä. * =================================================================== */ #pragma once class cCallbackStreamPACK : public NiStream { public: cCallbackStreamPACK(); virtual ~cCallbackStreamPACK(); /// °ÔÀӺ긮¿À ¿¬°áÀ» À§ÇÑ ±âº» ¾²·¹µå ÇÔ¼ö Wrapping class cBackgroundLoadProcedureEx : public BackgroundLoadProcedure { public: cBackgroundLoadProcedureEx( NiStream* pStream ) : BackgroundLoadProcedure( pStream ) { } /// ¾²·¹µå ¸ÞÀΠó¸® virtual unsigned int ThreadProcedure( void* pArg ); }; /// Å¥¿¡ ÆÄÀϸíÀ» ä¿î´Ù. void AddLoadFile( const char* fileName ); /// Å¥¸¦ ¿ÏÀüÈ÷ ºñ¿î´Ù. void ClearQueue(); /// ¾²·¹µå 󸮺Πvoid Process(); /// ÀÓÀǷΠȣÃâ ±ÝÁö /// ½ÇÁ¦ ¾²·¹µå 󸮺Π(Å¥¸¦ Àû¿ëÇÑ È®ÀåÇÔ¼ö) void BackgroundLoadEx(); /// ÀÓÀǷΠȣÃâ ±ÝÁö /// ´ÜÀÏ °´Ã¼ ·Îµù ¿Ï·á½Ã 󸮺Πvirtual void BackgroundLoadOnExit(); protected: /// ¾²·¹µå ½ÃÀÛ Ã¼Å© (Å¥¸¦ Àû¿ëÇÑ È®ÀåÇÔ¼ö) void BackgroundLoadBeginEx(); protected: /// °øÀ¯Å¥¿¡ ´ëÇÑ Å©¸®Æ¼Äà ¼½¼Ç static NiCriticalSection mQueueCriticalSection; /// ¾²·¹µå ·Îµù Å¥ (·ÎµùµÉ µ¥ÀÌÅÍÀÇ ¸ñ·ÏÀ» ´ã´Â´Ù. /// ÀÌ Å¥°¡ ºñ¿ö Áú¶§±îÁö ¾²·¹µå¸¦ °è¼Ó À¯ÁöÇÑ´Ù. NiTPrimitiveQueue* mpFileQueue; };