//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//
//=============================================================================//
// data_collector.cpp
// Data collection system
// Author: Michael S. Booth, June 2004

#include "cbase.h"
#include "data_collector.h"

static CDataCollector *collector = NULL;

//----------------------------------------------------------------------------------------------------------------------
void StartDataCollection( void )
{
	if (collector)
	{
		// already collecting
		return;
	}

	collector = new CDataCollector;
	Msg( "Data colletion started.\n" );
}
ConCommand data_collection_start( "data_collection_start", StartDataCollection, "Start collecting game event data." );


//----------------------------------------------------------------------------------------------------------------------
void StopDataCollection( void )
{
	if (collector)
	{
		delete collector;
		collector = NULL;

		Msg( "Data collection stopped.\n" );
	}
}
ConCommand data_collection_stop( "data_collection_stop", StopDataCollection, "Stop collecting game event data." );


//----------------------------------------------------------------------------------------------------------------------
CDataCollector::CDataCollector( void )
{
	// register for all events
	gameeventmanager->AddListener( this, true );
}

//----------------------------------------------------------------------------------------------------------------------
CDataCollector::~CDataCollector()
{
	gameeventmanager->RemoveListener( this );
}

//----------------------------------------------------------------------------------------------------------------------
/**
 * This is invoked for each event that occurs in the game
 */
void CDataCollector::FireGameEvent( KeyValues *event )
{
	DevMsg( "Collected event '%s'\n", event->GetName() );
}