/*
* Seven Kingdoms: Ancient Adversaries
*
* Copyright 1997,1998 Enlight Software Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
*/
// Filename : OLOG.CPP
// Description : logging class
// Owner : Gilbert
#include
#include
#include
// -------- begin of function Log::Log ----------//
Log::Log()
{
}
// -------- end of function Log::Log ----------//
Log::~Log()
{
}
// -------- begin of function Log::mark_begin ----------//
void Log::mark_begin()
{
// text_buffer[0] stores the latest log
text_buffer[0].clear();
*(text_buffer[0].reserve(sizeof(char))) = '\0'; // put a null character in the buffer
}
// -------- end of function Log::mark_begin ----------//
// -------- begin of function Log::mark_end ----------//
void Log::mark_end()
{
// enable next line to trace hang
// dump();
// rotate buffers
text_buffer[LOG_VERSION-1].clear();
*(text_buffer[LOG_VERSION-1].reserve(sizeof(char))) = '\0'; // put a null character in the buffer
for(int n = LOG_VERSION-1; n > 0; --n)
{
text_buffer[n].swap(text_buffer[n-1]);
}
}
// -------- end of function Log::mark_end ----------//
// -------- begin of function Log::mark ----------//
void Log::mark(char *msg, char *file, int line)
{
log_text = msg;
log_file = file;
log_line = line;
String t(log_text);
t += "\r\n";
strcpy( text_buffer[0].reserve(t.len())-1, t ); // minus 1 to remove the '\0' at the end
}
// -------- end of function Log::mark ----------//
// -------- begin of function Log::mark ----------//
void Log::mark(int n , char *file, int line)
{
log_text = n;
log_file = file;
log_line = line;
String t(log_text);
t += "\r\n";
strcpy( text_buffer[0].reserve(t.len())-1, t );
}
// -------- end of function Log::mark ----------//
// -------- begin of function Log::dump ----------//
void Log::dump()
{
// write old_buffer
char filename[20];
strcpy(filename, "AM_A.LOG");
File f;
for(int n = LOG_VERSION-1; n >= 0; --n, filename[3]++) // AM_A.LOG, AM_B.LOG ...
{
f.file_create(filename);
f.file_write( text_buffer[n].queue_buf, text_buffer[n].length() );
f.file_close();
}
}
// -------- end of function Log::dump ----------//
// -------- begin of function Log::debug_log ----------//
void Log::debug_log(char *msg)
{
String s;
s = msg;
s += "\r\n";
OutputDebugString(s);
}
void Log::debug_log(int n)
{
String s;
s = n;
s += "\r\n";
OutputDebugString(s);
}
// -------- end of function Log::debug_log ----------//