Code Search for Developers
 
 
  

StatsLogger.cpp from Scorched 3D at Krugle


Show StatsLogger.cpp syntax highlighted

////////////////////////////////////////////////////////////////////////////////
//    Scorched3D (c) 2000-2003
//
//    This file is part of Scorched3D.
//
//    Scorched3D 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.
//
//    Scorched3D 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 Scorched3D; if not, write to the Free Software
//    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
////////////////////////////////////////////////////////////////////////////////

#include <common/StatsLoggerMySQL.h>
#include <common/StatsLoggerPGSQL.h>
#include <common/StatsLoggerFile.h>
#include <common/OptionsScorched.h>
#include <common/Logger.h>
#include <server/ScorchedServer.h>
#include <stdlib.h>

StatsLogger *StatsLogger::instance_ = 0;

StatsLogger *StatsLogger::instance()
{
#ifndef S3D_SERVER
	if (!instance_) instance_ = new StatsLoggerNone;
#endif

	if (!instance_)
	{
		const char *statsLogger =
			ScorchedServer::instance()->getOptionsGame().getStatsLogger();
		if (strcmp(statsLogger, "mysql") == 0)
		{
#ifdef HAVE_MYSQL
			instance_ = new StatsLoggerMySQL();
			Logger::log( "Created mysql stats logger.");
#else
			dialogExit("StatsLogger",
				"Atempted to create mysql stats logger\n"
				"but mysql support has not been compiled into this\n"
				"scorched3d binary.");
#endif
			if (strcmp(ScorchedServer::instance()->getOptionsGame().getPublishAddress(),
						"AutoDetect") == 0)
			{
				dialogExit("StatsLogger",
					"Stats logging enabled but AutoDetect used for server address");
			}
		}
                else if (strcmp(statsLogger, "pgsql") == 0)
		{
#ifdef HAVE_PGSQL
			instance_ = new StatsLoggerPGSQL;
			Logger::log( "Created pgsql stats logger.");
#else
			dialogExit("StatsLogger",
				"Atempted to create pgsql stats logger\n"
				"but pgsql support has not been compiled into this\n"
				"scorched3d binary.");
#endif
			if (strcmp(ScorchedServer::instance()->getOptionsGame().getPublishAddress(),
						"AutoDetect") == 0)
			{
				dialogExit("StatsLogger",
					"Stats logging enabled but AutoDetect used for server address");
			}
		}
		else if (strcmp(statsLogger, "file") == 0)
		{
			Logger::log( "Created file stats logger.");
			instance_ = new StatsLoggerFile;
			
			if (strcmp(ScorchedServer::instance()->getOptionsGame().getPublishAddress(),
						"AutoDetect") == 0)
			{
				dialogExit("StatsLogger",
					"Stats logging enabled but AutoDetect used for server address");
			}
		}
		else
		{
			Logger::log( "Created null stats logger.");
			instance_ = new StatsLoggerNone;
		}
	}
	return instance_;
}

StatsLogger::StatsLogger()
{

}

StatsLogger::~StatsLogger()
{
}





See more files for this project here

Scorched 3D

Scorched3D is a 3D remake of the popular 2D artillery game Scorched Earth.\r\nScorched3D can be played against the computer, other players and remotely across the internet or LAN.

Project homepage: http://sourceforge.net/projects/scorched3d
Programming language(s): C,C++,XML
License: gpl2

  ARGParser.cpp
  ARGParser.h
  ChannelManager.cpp
  ChannelManager.h
  ChannelText.cpp
  ChannelText.h
  ChannelTextParser.cpp
  ChannelTextParser.h
  Clock.cpp
  Clock.h
  Counter.cpp
  Counter.h
  Defines.cpp
  Defines.h
  DefinesAssert.cpp
  DefinesAssert.h
  DefinesFile.cpp
  DefinesFile.h
  DefinesMath.cpp
  DefinesMath.h
  DefinesScorched.cpp
  DefinesScorched.h
  DefinesString.cpp
  DefinesString.h
  FileLines.cpp
  FileLines.h
  FileList.cpp
  FileList.h
  FileLogger.cpp
  FileLogger.h
  ImageID.cpp
  ImageID.h
  KeyStateTranslate.h
  KeyTranslate.h
  KeyTranslateWx.h
  Keyboard.cpp
  Keyboard.h
  KeyboardHistory.h
  KeyboardKey.cpp
  KeyboardKey.h
  Line.cpp
  Line.h
  Logger.cpp
  Logger.h
  LoggerI.cpp
  LoggerI.h
  ModelID.cpp
  ModelID.h
  NumberParser.cpp
  NumberParser.h
  OptionEntry.cpp
  OptionEntry.h
  OptionsGame.cpp
  OptionsGame.h
  OptionsMasterListServer.cpp
  OptionsMasterListServer.h
  OptionsParameters.cpp
  OptionsParameters.h
  OptionsScorched.cpp
  OptionsScorched.h
  OptionsTransient.cpp
  OptionsTransient.h
  ProgressCounter.cpp
  ProgressCounter.h
  RandomGenerator.cpp
  RandomGenerator.h
  SplineCurve.cpp
  SplineCurve.h
  SplinePath.cpp
  SplinePath.h
  StatsLogger.cpp
  StatsLogger.h
  StatsLoggerDatabase.cpp
  StatsLoggerDatabase.h
  StatsLoggerFile.cpp
  StatsLoggerFile.h
  StatsLoggerMySQL.cpp
  StatsLoggerMySQL.h
  StatsLoggerPGSQL.cpp
  StatsLoggerPGSQL.h
  StdVectorPtr.h
  ToolTip.cpp
  ToolTip.h
  Triangle.cpp
  Triangle.h
  Vector.cpp
  Vector.h
  Vector4.cpp
  Vector4.h
  VectorLib.cpp
  VectorLib.h
  main.h
  sha2.cpp
  sha2.h
  snprintf.c