third-party libs
This commit is contained in:
parent
f836927d3a
commit
b154ee9266
3667 changed files with 854591 additions and 0 deletions
106
third-party/BugTrap-1.3-57bd515/source/LogStream.cpp
vendored
Normal file
106
third-party/BugTrap-1.3-57bd515/source/LogStream.cpp
vendored
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#include "StdAfx.h"
|
||||
#include "LogStream.h"
|
||||
#include "TextFormat.h"
|
||||
|
||||
/**
|
||||
* @return true if operation was completed successfully.
|
||||
*/
|
||||
BOOL CLogStream::LoadEntries(void)
|
||||
{
|
||||
_ASSERTE(m_hFile == INVALID_HANDLE_VALUE);
|
||||
if (m_hFile != INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
PCTSTR pszLogFileName = GetLogFileName();
|
||||
m_hFile = CreateFile(pszLogFileName, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (m_hFile == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
DWORD dwFileSize = GetFileSize(m_hFile, NULL);
|
||||
if (dwFileSize == 0)
|
||||
{
|
||||
DWORD dwWritten;
|
||||
if (! WriteFile(m_hFile, g_arrUTF8Preamble, sizeof(g_arrUTF8Preamble), &dwWritten, NULL))
|
||||
goto error;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (SetFilePointer(m_hFile, 0, NULL, FILE_END) == INVALID_SET_FILE_POINTER)
|
||||
goto error;
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
error:
|
||||
Close();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if operation was completed successfully.
|
||||
*/
|
||||
BOOL CLogStream::ClearEntries(void)
|
||||
{
|
||||
_ASSERTE(m_hFile != INVALID_HANDLE_VALUE);
|
||||
if (m_hFile == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
if (SetFilePointer(m_hFile, 0, NULL, FILE_BEGIN) == INVALID_SET_FILE_POINTER)
|
||||
return FALSE;
|
||||
if (! SetEndOfFile(m_hFile))
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CLogStream::Close(void)
|
||||
{
|
||||
if (m_hFile != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
CloseHandle(m_hFile);
|
||||
m_hFile = INVALID_HANDLE_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param eLogLevel - log level number.
|
||||
* @param eEntryMode - entry mode.
|
||||
* @param rcsConsoleAccess - provides synchronous access to the console.
|
||||
* @param pszEntry - log entry text.
|
||||
* @return true if operation was completed successfully.
|
||||
*/
|
||||
BOOL CLogStream::WriteLogEntry(BUGTRAP_LOGLEVEL eLogLevel, ENTRY_MODE eEntryMode, CRITICAL_SECTION& rcsConsoleAccess, PCTSTR pszEntry)
|
||||
{
|
||||
_ASSERTE(m_hFile != INVALID_HANDLE_VALUE);
|
||||
if (m_hFile == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
_ASSERTE(eEntryMode == EM_APPEND);
|
||||
if (eEntryMode != EM_APPEND)
|
||||
return FALSE;
|
||||
BUGTRAP_LOGLEVEL eLogFileLevel = GetLogLevel();
|
||||
if (eLogLevel <= eLogFileLevel)
|
||||
{
|
||||
SYSTEMTIME st;
|
||||
GetLocalTime(&st);
|
||||
if (! WriteLogEntryToConsole(eLogLevel, &st, rcsConsoleAccess, pszEntry))
|
||||
FillEntryText(eLogLevel, &st, pszEntry);
|
||||
EncodeEntryText();
|
||||
const BYTE* pBuffer = m_MemStream.GetBuffer();
|
||||
if (pBuffer == NULL)
|
||||
return FALSE;
|
||||
DWORD dwLength = (DWORD)m_MemStream.GetLength();
|
||||
_ASSERTE(dwLength > 0);
|
||||
DWORD dwWritten;
|
||||
return WriteFile(m_hFile, pBuffer, dwLength, &dwWritten, NULL);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue