www.pudn.com > netcode34.zip > XLogFile.h, change:2001-09-10,size:1427b


//============================================================================================= 
/* 
	XLogFile.h 
	File operate function of log file 
 
	Project	: XFILTER 1.0 Personal Firewall 
	Author	: Tony Zhu 
	Create Date	: 2001/08/23 
	Email	: xstudio@xfilt.com 
	URL		: http://www.xfilt.com 
 
	Copyright (c) 2001-2002 XStudio Technology. 
	All Rights Reserved. 
*/ 
//============================================================================================= 
// Log file 
 
typedef struct _LOG_HEADER 
{ 
	TCHAR	Singnature[16]; 
	DWORD	RecordCount; 
	DWORD	CurrentPosition; 
} LOG_HEADER, *PLOG_HEADER; 
 
typedef struct _LOG_FIND 
{ 
	IN	CTime	tStartTime; 
	IN	CTime	tEndTime; 
	OUT DWORD	ulStartPosition; 
	OUT DWORD	ulRecordCount; 
	OUT DWORD	ulChangeDirectionIndex; 
} LOG_FIND, *PLOG_FIND; 
 
#define LOG_HEADER_LENTH			sizeof(LOG_HEADER) 
#define FILE_SIZE_1M_BYTES			1048576 
#define RESULT_ONE_RECORD_LENTH		LOG_HEADER_LENTH + SESSION_LENTH 
 
class CXLogFile 
{ 
private: 
	CRITICAL_SECTION	gCriticalSectionLog; 
 
private: 
	int		CreateLog(const TCHAR *sPathName); 
	int		CloseLog(); 
	int		OpenLog(); 
	int		WriteHeader(); 
 
public: 
	CXLogFile(); 
	virtual ~CXLogFile(); 
 
	int		AddLog(SESSION *session, long MaxLogSize = 5); 
	int		FindLog(LOG_FIND *logfind,  long MaxLogSize = 5); 
 
public: 
	LOG_HEADER		m_LogHeader; 
	CFileStatus		m_FileStatus; 
	CFile			m_LogFile; 
	CString			m_sPathName; 
};