145 lines
2.7 KiB
C
145 lines
2.7 KiB
C
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose: Interface of CLogEvent
|
||
|
//
|
||
|
// $Workfile: $
|
||
|
// $Date: $
|
||
|
//
|
||
|
//------------------------------------------------------------------------------------------------------
|
||
|
// $Log: $
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================//
|
||
|
#ifndef LOGEVENT_H
|
||
|
#define LOGEVENT_H
|
||
|
#ifdef WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
#pragma warning(disable :4786)
|
||
|
|
||
|
|
||
|
#include "Argument.h"
|
||
|
|
||
|
#ifdef WIN32
|
||
|
//#include <strstrea.h>
|
||
|
#else
|
||
|
//#include <strstream.h>
|
||
|
#endif
|
||
|
#include <time.h>
|
||
|
//#include <iostream.h>
|
||
|
|
||
|
#include <stdio.h>
|
||
|
|
||
|
|
||
|
|
||
|
//------------------------------------------------------------------------------------------------------
|
||
|
// Purpose: CLogEvent represents an event in the log file. e.g. one line.
|
||
|
// It can have one of several types (enumerated below) and a list of arguments
|
||
|
// is attached as well.
|
||
|
//------------------------------------------------------------------------------------------------------
|
||
|
class CLogEvent
|
||
|
{
|
||
|
public:
|
||
|
enum Type
|
||
|
{
|
||
|
NOTYPE =0,
|
||
|
INVALID = 0,
|
||
|
LOG_FILE_INIT,
|
||
|
SERVER_SPAWN,
|
||
|
SERVER_SHUTDOWN,
|
||
|
LOG_CLOSED,
|
||
|
SERVER_MISC,
|
||
|
SERVER_NAME,
|
||
|
TEAM_RENAME,
|
||
|
LEVEL_CHANGE,
|
||
|
CVAR_ASSIGN,
|
||
|
MAP_CRC,
|
||
|
TEAM_JOIN,
|
||
|
CONNECT,
|
||
|
ENTER_GAME,
|
||
|
DISCONNECT,
|
||
|
NAME_CHANGE,
|
||
|
FRAG,
|
||
|
TEAM_FRAG,
|
||
|
SUICIDE,
|
||
|
KILLED_BY_WORLD,
|
||
|
BUILD,
|
||
|
MATCH_RESULTS_MARKER,
|
||
|
MATCH_DRAW,
|
||
|
MATCH_VICTOR,
|
||
|
MATCH_TEAM_RESULTS,
|
||
|
SAY,
|
||
|
SAY_TEAM,
|
||
|
CURE,
|
||
|
NAMED_GOAL_ACTIVATE,
|
||
|
ANON_GOAL_ACTIVATE,
|
||
|
NAMED_BROADCAST,
|
||
|
ANON_BROADCAST,
|
||
|
CLASS_CHANGE,
|
||
|
NUM_TYPES
|
||
|
};
|
||
|
|
||
|
char* m_StrippedText;
|
||
|
private:
|
||
|
ArgVector m_args;
|
||
|
|
||
|
char m_EventCode;
|
||
|
|
||
|
time_t m_EventTime;
|
||
|
|
||
|
bool m_Valid;
|
||
|
char* m_EventMessage;
|
||
|
Type m_EventType;
|
||
|
|
||
|
|
||
|
bool keywordsOccur(char* s1,char* s2=NULL,char* s3=NULL);
|
||
|
void parseArgs();
|
||
|
// void readEventTime(istream& is);
|
||
|
// void readEventCode(istream& is);
|
||
|
// void readEventMessage(istream& is);
|
||
|
void parseArgument(const char*& raw); //ref to pointer to constant char, gotta love it.
|
||
|
void determineType();
|
||
|
|
||
|
public:
|
||
|
CLogEvent* m_Next;
|
||
|
|
||
|
CLogEvent();
|
||
|
~CLogEvent();
|
||
|
bool isValid(){return m_Valid;}
|
||
|
|
||
|
// explicit CLogEvent(istream& is);
|
||
|
// virtual void readEvent(istream& is);
|
||
|
// virtual void print(ostream& os);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
CLogEvent::Type getType() const {return m_EventType;}
|
||
|
time_t getTime() const {return m_EventTime;}
|
||
|
const CLogEventArgument* getArgument(int i) const;
|
||
|
|
||
|
const char* getFullMessage() const {return m_EventMessage;}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
static const char* TypeNames[];
|
||
|
|
||
|
|
||
|
//unused stuff
|
||
|
protected:
|
||
|
void readEventTime(FILE* f);
|
||
|
void readEventCode(FILE* f);
|
||
|
void readEventMessage(FILE* f);
|
||
|
|
||
|
public:
|
||
|
explicit CLogEvent(FILE* f);
|
||
|
virtual void readEvent(FILE* f);
|
||
|
virtual void print(FILE* f=stdout);
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
#endif // LOGEVENT_H
|