#pragma once #include "akLinker.h" #include #include class akSTL_DLLSPEC CakTrace { public: CakTrace(void); virtual ~CakTrace(void); enum Mode { TM_MEMORY = 0, TM_FILE }; //0Àº ¸Þ¸ð¸®¿¡ µ¥ÀÌÅÍ °ü¸® ÇÏ´Â ¸ðµå, 1Àº ÆÄÀÏ¿¡ µ¥ÀÌÅ͸¦ °ü¸® ÇÏ´Â ¸ðµå virtual void setMode(Mode nMode); //TRACE virtual void setTrace(char* format, ...); ////////////////////////////////////////////////////////////////////////// //ÆÄÀϸðµå Àϰæ¿ì »ç¿ë ÇÔ¼ö ////////////////////////////////////////////////////////////////////////// //ÀúÀåÇÒ ÆÄÀÏ À̸§ ÁöÁ¤ bool setTraceFileName(char* filename, bool bClear = true); ////////////////////////////////////////////////////////////////////////// //¸Þ¸ð¸® ¸ðµå Àϰæ¿ì »ç¿ë ÇÔ¼ö ////////////////////////////////////////////////////////////////////////// //ÀúÀå°ø°£ ÃʱâÈ­ void clear(); //µ¥ÀÌÅÍ °¹¼ö ȹµæ int getTraceNum(); //ÀúÀåµÈ µ¥ÀÌÅÍ È¹µæ char* getTraceFront(); //Á© ¾Õ¿¡ µ¥ÀÌÅ͸¦ ȹµæÇÏ°í »èÁ¦ void getTracePop(char* pBuffer); //¸Þ¸ð¸®¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ ÆÄÀÏ·Î ÀúÀå void setWriteFile(char* filename, bool bAdd = true); protected: std::queue m_vecTraceData; char* m_pTraceFileName; Mode m_nMode; CRITICAL_SECTION m_csTrace; FILE* m_pf; };