#pragma once #include "LogCommonDefine.h" class SolarLog; //--------------------------------------------------------------------------------------------------------------------- #ifdef _NA_0_20110305_BUG_READ_BIG_LOGFILE //--------------------------------------------------------------------------------------------------------------------- class DLL_DECLARE CLogArchive { enum { Null_File = -1, }; SolarLog* m_pSolarLog; SolarLog* m_pSolarLogText; int file_handle_; #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT // ´ÜÀÏ ¹ÙÀ̳ʸ® ·Î±× Ç׸ñ¿¡ ´ëÇÑ ¾²±â ¿øÀÚ¼º º¸ÀåÀ» À§ÇØ ¾²±â ½ºÇ®¸µ Áö¿ø Ãß°¡ // ÅØ½ºÆ® ·Î±×´Â ½ºÇ®¸µÇÏÁö ¾ÊÀ½ bool m_bSpooling; // ÇöÀç ½ºÇ®¸µ ÁßÀΰ¡¸¦ Ç¥ÇöÇÏ´Â Boolean Ç÷¡±× BYTE* m_pSpoolBuffer; // ¹ÙÀ̳ʸ® ·Î±× ½ºÇ® ¹öÆÛ Æ÷ÀÎÅÍ. ÇÒ´ç/ÇØÁ¦´Â ¿ÜºÎÀÇ Ã¥ÀÓ size_t m_uSpoolBufferSize; // ½ºÇ® ¹öÆÛ Å©±â size_t m_uSpooledLength; // ½ºÇ® ¹öÆÛ ³»¿ë ±æÀÌ #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT public: CLogArchive(SolarLog* pSolarLog, SolarLog* pSolarLogText) #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT : m_bSpooling(false) , m_pSpoolBuffer(NULL) , m_uSpoolBufferSize(0) , m_uSpooledLength(0) #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT { m_pSolarLog = pSolarLog; m_pSolarLogText = pSolarLogText; } CLogArchive(int file_handle) #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT : m_bSpooling(false) , m_pSpoolBuffer(NULL) , m_uSpoolBufferSize(0) , m_uSpooledLength(0) #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT { file_handle_ = file_handle; } ~CLogArchive(VOID); template CLogArchive& operator << ( const T & type) { Write( &type, sizeof(T) ); return (*this); } template CLogArchive& operator >> ( T & type) { Read( &type, sizeof(T)); return (*this); } __inline void Write(const void * pBuffer, int size); __inline void WriteText(TCHAR* pBuffer, DWORD dwSize); __inline void Read(void* pBuffer, DWORD dwSize); #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT public: // ½ºÇ® ¹öÆÛ ÃʱâÈ­ void InitSpooling(void* spoolBuffer, size_t spoolBufferSize); // ½ºÇ®¸µÀ» ÁغñÇÑ´Ù. ÀÌ¹Ì ½ºÇ®¸µ ÁßÀ̸é Flush() ÈÄ »õ·Î ½ÃÀÛÇÑ´Ù. void BeginSpooling(); // ½ºÇ®¸µµÈ ³»¿ëÀ» ½ÇÁ¦·Î ¾´´Ù bool Flush(); private: // ½ºÇ®¸µ ³»¿ëÀ» Ãß°¡ÇÑ´Ù bool Spool(const void* buffer, size_t length); #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT }; //--------------------------------------------------------------------------------------------------------------------- #else //_NA_0_20110305_BUG_READ_BIG_LOGFILE //--------------------------------------------------------------------------------------------------------------------- class DLL_DECLARE CLogArchive { SolarLog* m_pSolarLog; SolarLog* m_pSolarLogText; FILE* m_pReadStream; #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT // ´ÜÀÏ ¹ÙÀ̳ʸ® ·Î±× Ç׸ñ¿¡ ´ëÇÑ ¾²±â ¿øÀÚ¼º º¸ÀåÀ» À§ÇØ ¾²±â ½ºÇ®¸µ Áö¿ø Ãß°¡ // ÅØ½ºÆ® ·Î±×´Â ½ºÇ®¸µÇÏÁö ¾ÊÀ½ bool m_bSpooling; // ÇöÀç ½ºÇ®¸µ ÁßÀΰ¡¸¦ Ç¥ÇöÇÏ´Â Boolean Ç÷¡±× BYTE* m_pSpoolBuffer; // ¹ÙÀ̳ʸ® ·Î±× ½ºÇ® ¹öÆÛ Æ÷ÀÎÅÍ. ÇÒ´ç/ÇØÁ¦´Â ¿ÜºÎÀÇ Ã¥ÀÓ size_t m_uSpoolBufferSize; // ½ºÇ® ¹öÆÛ Å©±â size_t m_uSpooledLength; // ½ºÇ® ¹öÆÛ ³»¿ë ±æÀÌ #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT public: CLogArchive(SolarLog* pSolarLog, SolarLog* pSolarLogText) #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT : m_bSpooling(false) , m_pSpoolBuffer(NULL) , m_uSpoolBufferSize(0) , m_uSpooledLength(0) #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT { m_pSolarLog = pSolarLog; m_pSolarLogText = pSolarLogText; } CLogArchive(FILE* pStream) #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT : m_bSpooling(false) , m_pSpoolBuffer(NULL) , m_uSpoolBufferSize(0) , m_uSpooledLength(0) #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT { m_pReadStream = pStream; } ~CLogArchive(VOID); template CLogArchive& operator << ( const T & type) { Write( &type, sizeof(T) ); return (*this); } template CLogArchive& operator >> ( T & type) { Read( &type, sizeof(T)); return (*this); } __inline void Write(const void * pBuffer, int size); __inline void WriteText(TCHAR* pBuffer, DWORD dwSize); __inline void Read(void* pBuffer, DWORD dwSize); #ifdef __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT public: // ½ºÇ® ¹öÆÛ ÃʱâÈ­ void InitSpooling(void* spoolBuffer, size_t spoolBufferSize); // ½ºÇ®¸µÀ» ÁغñÇÑ´Ù. ÀÌ¹Ì ½ºÇ®¸µ ÁßÀ̸é Flush() ÈÄ »õ·Î ½ÃÀÛÇÑ´Ù. void BeginSpooling(); // ½ºÇ®¸µµÈ ³»¿ëÀ» ½ÇÁ¦·Î ¾´´Ù bool Flush(); private: // ½ºÇ®¸µ ³»¿ëÀ» Ãß°¡ÇÑ´Ù bool Spool(const void* buffer, size_t length); #endif // __NA_0_20090812_BINARY_LOGGING_IMPROVEMENT }; //--------------------------------------------------------------------------------------------------------------------- #endif //_NA_0_20110305_BUG_READ_BIG_LOGFILE //---------------------------------------------------------------------------------------------------------------------