95 lines
2.2 KiB
C++
95 lines
2.2 KiB
C++
/*
|
|
* This is a part of the BugTrap package.
|
|
* Copyright (c) 2005-2009 IntelleSoft.
|
|
* All rights reserved.
|
|
*
|
|
* Description: Log stream class.
|
|
* Author: Maksim Pyatkovskiy.
|
|
*
|
|
* This source code is only intended as a supplement to the
|
|
* BugTrap package reference and related electronic documentation
|
|
* provided with the product. See these sources for detailed
|
|
* information regarding the BugTrap package.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "LogFile.h"
|
|
#include "MemStream.h"
|
|
#include "Encoding.h"
|
|
|
|
/**
|
|
* Log stream class.
|
|
*/
|
|
class CLogStream : public CLogFile
|
|
{
|
|
public:
|
|
/// Object constructor,
|
|
CLogStream(void);
|
|
/// Object destructor.
|
|
virtual ~CLogStream(void);
|
|
/// Load Entries into memory.
|
|
virtual BOOL LoadEntries(void);
|
|
/// Save entries into disk.
|
|
virtual BOOL SaveEntries(BOOL bCrash);
|
|
/// Clear log entries.
|
|
virtual BOOL ClearEntries(void);
|
|
/// Add new log entry.
|
|
virtual BOOL WriteLogEntry(BUGTRAP_LOGLEVEL eLogLevel, ENTRY_MODE eEntryMode, CRITICAL_SECTION& rcsConsoleAccess, PCTSTR pszEntry);
|
|
/// Close log file.
|
|
virtual void Close(void);
|
|
|
|
protected:
|
|
/// Get default log file extension.
|
|
virtual PCTSTR GetLogFileExtension(void) const;
|
|
|
|
private:
|
|
/// Protects the class from being accidentally copied.
|
|
CLogStream(const CLogStream& rLogFile);
|
|
/// Protects the class from being accidentally copied.
|
|
CLogStream& operator=(const CLogStream& rLogFile);
|
|
|
|
/// Encode entry text.
|
|
void EncodeEntryText(void);
|
|
|
|
/// Log file handle.
|
|
HANDLE m_hFile;
|
|
/// Encoder object pre-allocated for the log.
|
|
CUTF8EncStream m_EncStream;
|
|
/// Pre-allocated buffer for encoded log entry text.
|
|
CMemStream m_MemStream;
|
|
};
|
|
|
|
inline CLogStream::CLogStream(void) : m_MemStream(1024), m_EncStream(&m_MemStream)
|
|
{
|
|
m_hFile = INVALID_HANDLE_VALUE;
|
|
}
|
|
|
|
inline CLogStream::~CLogStream(void)
|
|
{
|
|
Close();
|
|
}
|
|
|
|
/**
|
|
* @param bCrash - true if the crash has been detected.
|
|
* @return true if operation was completed successfully.
|
|
*/
|
|
inline BOOL CLogStream::SaveEntries(BOOL /*bCrash*/)
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
/**
|
|
* @return log file extension.
|
|
*/
|
|
inline PCTSTR CLogStream::GetLogFileExtension(void) const
|
|
{
|
|
return _T(".txt");
|
|
}
|
|
|
|
inline void CLogStream::EncodeEntryText(void)
|
|
{
|
|
m_EncStream.Reset();
|
|
PCTSTR pszEntry = GetEntryText();
|
|
m_EncStream.WriteUTF8Bin(pszEntry);
|
|
}
|