XLogFile.h
上传用户:kklily621
上传日期:2013-06-25
资源大小:252k
文件大小:1k
开发平台:

Visual C++

  1. //=============================================================================================
  2. /*
  3. XLogFile.h
  4. File operate function of log file
  5. Project : XFILTER 1.0 Personal Firewall
  6. Author : Tony Zhu
  7. Create Date : 2001/08/23
  8. Email : xstudio@xfilt.com
  9. URL : http://www.xfilt.com
  10. Copyright (c) 2001-2002 XStudio Technology.
  11. All Rights Reserved.
  12. */
  13. //=============================================================================================
  14. // Log file
  15. typedef struct _LOG_HEADER
  16. {
  17. TCHAR Singnature[16];
  18. DWORD RecordCount;
  19. DWORD CurrentPosition;
  20. } LOG_HEADER, *PLOG_HEADER;
  21. typedef struct _LOG_FIND
  22. {
  23. IN CTime tStartTime;
  24. IN CTime tEndTime;
  25. OUT DWORD ulStartPosition;
  26. OUT DWORD ulRecordCount;
  27. OUT DWORD ulChangeDirectionIndex;
  28. } LOG_FIND, *PLOG_FIND;
  29. #define LOG_HEADER_LENTH sizeof(LOG_HEADER)
  30. #define FILE_SIZE_1M_BYTES 1048576
  31. #define RESULT_ONE_RECORD_LENTH LOG_HEADER_LENTH + SESSION_LENTH
  32. class CXLogFile
  33. {
  34. private:
  35. CRITICAL_SECTION gCriticalSectionLog;
  36. private:
  37. int CreateLog(const TCHAR *sPathName);
  38. int CloseLog();
  39. int OpenLog();
  40. int WriteHeader();
  41. public:
  42. CXLogFile();
  43. virtual ~CXLogFile();
  44. int AddLog(SESSION *session, long MaxLogSize = 5);
  45. int FindLog(LOG_FIND *logfind,  long MaxLogSize = 5);
  46. public:
  47. LOG_HEADER m_LogHeader;
  48. CFileStatus m_FileStatus;
  49. CFile m_LogFile;
  50. CString m_sPathName;
  51. };