xref: /rkdeveloptool/RKLog.h (revision bfb8da190717fab7396e15fd73b305f0f1b4137c)
176af099aSliuyi #ifndef RKLOG_HEADER
276af099aSliuyi #define RKLOG_HEADER
376af099aSliuyi #include "DefineHeader.h"
476af099aSliuyi 
576af099aSliuyi #define GET_FMT_STRING(fmt, buf) \
676af099aSliuyi 	{ \
776af099aSliuyi 	va_list args; \
876af099aSliuyi 	va_start(args, fmt); \
976af099aSliuyi 	vsnprintf(buf, sizeof(buf)-1, fmt, args); \
1076af099aSliuyi 	va_end(args); \
1176af099aSliuyi 	buf[sizeof(buf)-1] = 0x00; \
1276af099aSliuyi };
1376af099aSliuyi 
1476af099aSliuyi class CRKLog
1576af099aSliuyi {
1676af099aSliuyi public:
1776af099aSliuyi 	string GetLogSavePath();
1876af099aSliuyi  	bool GetEnableLog();
1976af099aSliuyi  	void SetEnableLog(bool bEnable);
2076af099aSliuyi  	property<CRKLog, string, READ_ONLY> LogSavePath;
2176af099aSliuyi  	property<CRKLog, bool, READ_WRITE> EnableLog;
22*bfb8da19SEddie Cai 	CRKLog(string logFilePath, string logFileName, bool enable = false);
2376af099aSliuyi 	~CRKLog();
2476af099aSliuyi 	bool SaveBuffer(string fileName, PBYTE lpBuffer, DWORD dwSize);
2576af099aSliuyi 	void PrintBuffer(string &strOutput, PBYTE lpBuffer, DWORD dwSize, UINT uiLineCount = 16);
2676af099aSliuyi 	void Record(const char *lpFmt, ...);
2776af099aSliuyi 
2876af099aSliuyi protected:
2976af099aSliuyi private:
3076af099aSliuyi 	string m_path;
3176af099aSliuyi 	string  m_name;
3276af099aSliuyi 	bool    m_enable;
3376af099aSliuyi 	bool Write(string text);
3476af099aSliuyi };
3576af099aSliuyi typedef enum {
3676af099aSliuyi 	STAT_NOT_EXIST = 0,
3776af099aSliuyi 	STAT_FILE,
3876af099aSliuyi 	STAT_DIR
3976af099aSliuyi } ENUM_FILE_STAT;
4076af099aSliuyi int file_stat(string strPath);
4176af099aSliuyi #endif
42