123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #pragma once
- #include <map>
- #include <vector>
- #include <string>
- using namespace std;
- #include "CcosLock.h"
- typedef struct _BlockId {
- DWORD Offset;
- DWORD Size;
- _BlockId()
- {
- Offset = 0;
- Size = 0;
- };
- ~_BlockId()
- {
- };
- }BLOCKID;
- typedef struct _LogFileStatus {
- _LogFileStatus()
- {
- InitStatus = false;
- MaxFileSize = 1024*1024*10;
- MaxBackupCount = 0;
- MaxTimePeriod = 0;
- };
- ~_LogFileStatus()
- {
- };
- bool InitStatus;
- size_t MaxFileSize;//log file size limit.def:10M
- size_t MaxBackupCount;//log file count limit.def:
- size_t MaxTimePeriod;//by day
- }LOGFILESTATUS;
- class BlockInfo
- {
- public:
- BlockInfo(){
- m_TotalSize = 0;
- m_FileName = "";
- };
- virtual ~BlockInfo(){
- };
- DWORD m_TotalSize;
- string m_FileName;
- LOGFILESTATUS m_FileStatus;
- vector<BLOCKID> m_Block;
- };
- //the sequance of lock is blockmap -> circlebuff
- class CircleBuff : public CcosLock
- {
- public:
- char *m_pBuff;
- DWORD m_TotalSize;
- DWORD m_UsedSize;
- DWORD m_BasePos;
- DWORD m_HeadPos;
- CircleBuff();
- virtual ~CircleBuff();
- bool SetCacheSize(DWORD Size);
- DWORD AddContext(const char *pContext,DWORD Size);
- bool CopyContext(char *pContext, DWORD ContextSize, DWORD Offset, DWORD OffsetSize);
- };
- extern CircleBuff g_Circle;
- class BlockMap : public CcosLock
- {
- DWORD m_FileIdx;
- public:
- map<DWORD, BlockInfo> m_Block;
- BlockMap();
- virtual ~BlockMap();
- void ClearMapInfo();
- bool ChangeFilePath(DWORD FileId, const char *pFilePath);
- DWORD CreateLogFile(const char *pFilePath);
- bool WriteLogFile(DWORD Id, LOGFILESTATUS &Pattern, const char *pContext, DWORD size);
- };
- extern BlockMap g_BlockMap;
|