Files
itgmania212121/stepmania/src/RageLog.h
T
2003-07-23 22:50:25 +00:00

59 lines
1.4 KiB
C++

#ifndef RAGELOG_H
#define RAGELOG_H
/*
-----------------------------------------------------------------------------
Class: RageLog
Desc: Manages logging
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
#include <stdio.h>
class RageLog
{
public:
RageLog();
~RageLog();
void Trace( const char *fmt, ...);
void Warn( const char *fmt, ...);
void Info( const char *fmt, ...);
void Flush();
void ShowConsole();
void HideConsole();
void MapLog(const CString &key, const char *fmt, ...);
void UnmapLog(const CString &key);
static const char *GetAdditionalLog();
static const char *GetInfo();
/* Returns NULL if past the last recent log. */
static const char *GetRecentLog( int n );
private:
FILE *m_fileLog, *m_fileInfo;
void Write( int, CString );
void UpdateMappedLog();
void AddToInfo( CString buf );
void AddToRecentLogs( CString buf );
};
/* Mapped log entry that's deleted on dtor. Note that this isn't extremely
* fast (like VDCHECKPOINT); don't use it in inner loops. */
struct Checkpoint_
{
CString key;
Checkpoint_(CString key, int n, const char *fmt, ...);
~Checkpoint_();
};
#define Checkpoint(t) Checkpoint_ CP_( __FILE__, __LINE__, t )
extern RageLog* LOG; // global and accessable from anywhere in our program
#endif