|
|
//========= 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
|