Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998, Microsoft Corp. All rights reserved.
//
// FILE
//
// logfile.h
//
// SYNOPSIS
//
// Declares the class LogFile.
//
// MODIFICATION HISTORY
//
// 08/04/1998 Original version.
// 03/23/1999 Added invalidateHandle.
// 03/26/1999 Added setEnabled.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef _LOGFILE_H_
#define _LOGFILE_H_
#if _MSC_VER >= 1000
#pragma once
#endif
#include <guard.h>
class FileHandle;
///////////////////////////////////////////////////////////////////////////////
//
// CLASS
//
// LogFile
//
// DESCRIPTION
//
// Maintains a generic logfile that is periodically rolled over either
// when a specified interval has elapsed or the logfile reaches a certain
// size.
//
///////////////////////////////////////////////////////////////////////////////
class LogFile : Guardable { public:
LogFile() throw (); ~LogFile() throw ();
void setDirectory(PCWSTR szDirectory) throw (); void setEnabled(BOOL newVal) throw (); void setMaxSize(DWORDLONG newVal) throw (); void setPeriod(LONG newVal) throw ();
void close() throw (); BOOL write( const SYSTEMTIME* st, const BYTE* buf, DWORD buflen, BOOL allowRetry = TRUE ) throw ();
protected:
// Returns the next logfile name.
void getFileName(const SYSTEMTIME* st, PWSTR fname) throw ();
// Invalidates the given handle.
void invalidateHandle(FileHandle* handle) throw ();
// Releases the current file (if any) and opens a new one.
BOOL openFile(const SYSTEMTIME* st) throw ();
// Scans the logfile directory to determine the next sequence number.
void updateSequence() throw ();
WCHAR dirPath[MAX_PATH]; // Logfile directory.
BOOL enabled; ULARGE_INTEGER maxSize; LONG period; DWORD seqNum; // Next file sequence number.
FileHandle* file; SYSTEMTIME whenOpened; DWORD weekOpened; ULARGE_INTEGER currentSize; };
#endif // _LOGFILE_H_
|