about summary refs log tree commit diff
path: root/src/engine/shared
diff options
context:
space:
mode:
authoroy <Tom_Adams@web.de>2011-02-27 15:03:57 +0100
committeroy <Tom_Adams@web.de>2011-02-27 15:03:57 +0100
commitd9ce7203871cea0046144bce175df5bf1d7fcc19 (patch)
tree10ecc4f818eb7c5f1402a774a351e6d7bc9a04bf /src/engine/shared
parent45eee0c8c2bb5af6629db9adefeecea88a547fb4 (diff)
downloadzcatch-d9ce7203871cea0046144bce175df5bf1d7fcc19.tar.gz
zcatch-d9ce7203871cea0046144bce175df5bf1d7fcc19.zip
made engine an interface
Diffstat (limited to 'src/engine/shared')
-rw-r--r--src/engine/shared/console.cpp1
-rw-r--r--src/engine/shared/datafile.cpp1
-rw-r--r--src/engine/shared/demo.cpp1
-rw-r--r--src/engine/shared/engine.cpp109
-rw-r--r--src/engine/shared/engine.h26
-rw-r--r--src/engine/shared/masterserver.cpp22
-rw-r--r--src/engine/shared/network.cpp1
-rw-r--r--src/engine/shared/packer.cpp1
-rw-r--r--src/engine/shared/snapshot.cpp1
-rw-r--r--src/engine/shared/storage.cpp1
10 files changed, 61 insertions, 103 deletions
diff --git a/src/engine/shared/console.cpp b/src/engine/shared/console.cpp
index 987e252b..3241d05d 100644
--- a/src/engine/shared/console.cpp
+++ b/src/engine/shared/console.cpp
@@ -6,7 +6,6 @@
 #include <engine/storage.h>
 #include "console.h"
 #include "config.h"
-#include "engine.h"
 #include "linereader.h"
 
 const char *CConsole::CResult::GetString(unsigned Index)
diff --git a/src/engine/shared/datafile.cpp b/src/engine/shared/datafile.cpp
index a24ea765..74583ab8 100644
--- a/src/engine/shared/datafile.cpp
+++ b/src/engine/shared/datafile.cpp
@@ -4,7 +4,6 @@
 #include <base/system.h>
 #include <engine/storage.h>
 #include "datafile.h"
-#include "engine.h"
 #include <zlib.h>
 
 static const int DEBUG=0;
diff --git a/src/engine/shared/demo.cpp b/src/engine/shared/demo.cpp
index 0433d6a3..bf883456 100644
--- a/src/engine/shared/demo.cpp
+++ b/src/engine/shared/demo.cpp
@@ -9,7 +9,6 @@
 #include "snapshot.h"
 #include "compression.h"
 #include "network.h"
-#include "engine.h"
 
 static const unsigned char gs_aHeaderMarker[7] = {'T', 'W', 'D', 'E', 'M', 'O', 0};
 static const unsigned char gs_ActVersion = 2;
diff --git a/src/engine/shared/engine.cpp b/src/engine/shared/engine.cpp
index ea06c57c..442a5dfe 100644
--- a/src/engine/shared/engine.cpp
+++ b/src/engine/shared/engine.cpp
@@ -3,81 +3,70 @@
 
 #include <base/system.h>
 
+#include <engine/engine.h>
 #include <engine/shared/config.h>
-#include <engine/shared/engine.h>
 #include <engine/shared/network.h>
 #include <engine/console.h>
-#include "linereader.h"
 
-// compiled-in data-dir path
-#define DATA_DIR "data"
 
-//static int engine_find_datadir(char *argv0);
-/*
-static void con_dbg_dumpmem(IConsole::IResult *result, void *user_data)
+static int HostLookupThread(void *pUser)
 {
-	mem_debug_dump();
+	CHostLookup *pLookup = (CHostLookup *)pUser;
+	net_host_lookup(pLookup->m_aHostname, &pLookup->m_Addr, NETTYPE_IPV4);
+	return 0;
 }
 
-static void con_dbg_lognetwork(IConsole::IResult *result, void *user_data)
+class CEngine : public IEngine
 {
-	CNetBase::OpenLog("network_sent.dat", "network_recv.dat");
-}*/
-
-/*
-static char application_save_path[512] = {0};
-static char datadir[512] = {0};
+public:
+	/*
+	static void con_dbg_dumpmem(IConsole::IResult *result, void *user_data)
+	{
+		mem_debug_dump();
+	}
 
-const char *engine_savepath(const char *filename, char *buffer, int max)
-{
-	str_format(buffer, max, "%s/%s", application_save_path, filename);
-	return buffer;
-}*/
+	static void con_dbg_lognetwork(IConsole::IResult *result, void *user_data)
+	{
+		CNetBase::OpenLog("network_sent.dat", "network_recv.dat");
+	}*/
 
-void CEngine::Init(const char *pAppname)
-{
-	dbg_logger_stdout();
-	dbg_logger_debugger();
+	CEngine(const char *pAppname)
+	{
+		dbg_logger_stdout();
+		dbg_logger_debugger();
 	
-	//
-	dbg_msg("engine", "running on %s-%s-%s", CONF_FAMILY_STRING, CONF_PLATFORM_STRING, CONF_ARCH_STRING);
-#ifdef CONF_ARCH_ENDIAN_LITTLE
-	dbg_msg("engine", "arch is little endian");
-#elif defined(CONF_ARCH_ENDIAN_BIG)
-	dbg_msg("engine", "arch is big endian");
-#else
-	dbg_msg("engine", "unknown endian");
-#endif
+		//
+		dbg_msg("engine", "running on %s-%s-%s", CONF_FAMILY_STRING, CONF_PLATFORM_STRING, CONF_ARCH_STRING);
+	#ifdef CONF_ARCH_ENDIAN_LITTLE
+		dbg_msg("engine", "arch is little endian");
+	#elif defined(CONF_ARCH_ENDIAN_BIG)
+		dbg_msg("engine", "arch is big endian");
+	#else
+		dbg_msg("engine", "unknown endian");
+	#endif
 
-	// init the network
-	net_init();
-	CNetBase::Init();
+		// init the network
+		net_init();
+		CNetBase::Init();
 	
-	m_HostLookupPool.Init(1);
+		m_HostLookupPool.Init(1);
 
-	//MACRO_REGISTER_COMMAND("dbg_dumpmem", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_dumpmem, 0x0, "Dump the memory");
-	//MACRO_REGISTER_COMMAND("dbg_lognetwork", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_lognetwork, 0x0, "Log the network");
-	
-	// reset the config
-	//config_reset();
-}
+		//MACRO_REGISTER_COMMAND("dbg_dumpmem", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_dumpmem, 0x0, "Dump the memory");
+		//MACRO_REGISTER_COMMAND("dbg_lognetwork", "", CFGFLAG_SERVER|CFGFLAG_CLIENT, con_dbg_lognetwork, 0x0, "Log the network");
+	}
 
-void CEngine::InitLogfile()
-{
-	// open logfile if needed
-	if(g_Config.m_Logfile[0])
-		dbg_logger_file(g_Config.m_Logfile);
-}
+	void InitLogfile()
+	{
+		// open logfile if needed
+		if(g_Config.m_Logfile[0])
+			dbg_logger_file(g_Config.m_Logfile);
+	}
 
-static int HostLookupThread(void *pUser)
-{
-	CHostLookup *pLookup = (CHostLookup *)pUser;
-	net_host_lookup(pLookup->m_aHostname, &pLookup->m_Addr, NETTYPE_IPV4);
-	return 0;
-}
+	void HostLookup(CHostLookup *pLookup, const char *pHostname)
+	{
+		str_copy(pLookup->m_aHostname, pHostname, sizeof(pLookup->m_aHostname));
+		m_HostLookupPool.Add(&pLookup->m_Job, HostLookupThread, pLookup);
+	}
+};
 
-void CEngine::HostLookup(CHostLookup *pLookup, const char *pHostname)
-{
-	str_copy(pLookup->m_aHostname, pHostname, sizeof(pLookup->m_aHostname));
-	m_HostLookupPool.Add(&pLookup->m_Job, HostLookupThread, pLookup);
-}
+IEngine *CreateEngine(const char *pAppname) { return new CEngine(pAppname); }
diff --git a/src/engine/shared/engine.h b/src/engine/shared/engine.h
deleted file mode 100644
index 63b0cc09..00000000
--- a/src/engine/shared/engine.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
-/* If you are missing that file, acquire a complete release at teeworlds.com.                */
-#ifndef ENGINE_SHARED_E_ENGINE_H
-#define ENGINE_SHARED_E_ENGINE_H
-
-#include "jobs.h"
-
-class CHostLookup
-{
-public:
-	CJob m_Job;
-	char m_aHostname[128];
-	NETADDR m_Addr;
-};
-
-class CEngine
-{
-	class CJobPool m_HostLookupPool;
-
-public:
-	void Init(const char *pAppname);
-	void InitLogfile();
-	void HostLookup(CHostLookup *pLookup, const char *pHostname);
-};
-
-#endif
diff --git a/src/engine/shared/masterserver.cpp b/src/engine/shared/masterserver.cpp
index 308c3ed4..545cc16c 100644
--- a/src/engine/shared/masterserver.cpp
+++ b/src/engine/shared/masterserver.cpp
@@ -3,9 +3,11 @@
 #include <stdio.h>	// sscanf
 
 #include <base/system.h>
+
+#include <engine/engine.h>
 #include <engine/masterserver.h>
 #include <engine/storage.h>
-#include "engine.h"
+
 #include "linereader.h"
 
 class CMasterServer : public IEngineMasterServer
@@ -22,7 +24,8 @@ public:
 
 	CMasterInfo m_aMasterServers[MAX_MASTERSERVERS];
 	int m_NeedsUpdate;
-	CEngine *m_pEngine;
+	IEngine *m_pEngine;
+	IStorage *m_pStorage;
 	
 	CMasterServer()
 	{
@@ -98,9 +101,10 @@ public:
 		}
 	}
 
-	virtual void Init(class CEngine *pEngine)
+	virtual void Init()
 	{
-		m_pEngine = pEngine;
+		m_pEngine = Kernel()->RequestInterface<IEngine>();
+		m_pStorage = Kernel()->RequestInterface<IStorage>();
 	}
 
 	virtual void SetDefault()
@@ -115,12 +119,11 @@ public:
 		CLineReader LineReader;
 		IOHANDLE File;
 		int Count = 0;
-		IStorage *pStorage = Kernel()->RequestInterface<IStorage>();
-		if(!pStorage)
+		if(!m_pStorage)
 			return -1;
 		
 		// try to open file
-		File = pStorage->OpenFile("masters.cfg", IOFLAG_READ, IStorage::TYPE_SAVE);
+		File = m_pStorage->OpenFile("masters.cfg", IOFLAG_READ, IStorage::TYPE_SAVE);
 		if(!File)
 			return -1;
 		
@@ -161,12 +164,11 @@ public:
 	{
 		IOHANDLE File;
 
-		IStorage *pStorage = Kernel()->RequestInterface<IStorage>();
-		if(!pStorage)
+		if(!m_pStorage)
 			return -1;
 			
 		// try to open file
-		File = pStorage->OpenFile("masters.cfg", IOFLAG_WRITE, IStorage::TYPE_SAVE);
+		File = m_pStorage->OpenFile("masters.cfg", IOFLAG_WRITE, IStorage::TYPE_SAVE);
 		if(!File)
 			return -1;
 
diff --git a/src/engine/shared/network.cpp b/src/engine/shared/network.cpp
index 8e70d9cf..43c1e645 100644
--- a/src/engine/shared/network.cpp
+++ b/src/engine/shared/network.cpp
@@ -4,7 +4,6 @@
 
 
 #include "config.h"
-#include "engine.h"
 #include "network.h"
 #include "huffman.h"
 
diff --git a/src/engine/shared/packer.cpp b/src/engine/shared/packer.cpp
index 5519898d..cd211468 100644
--- a/src/engine/shared/packer.cpp
+++ b/src/engine/shared/packer.cpp
@@ -4,7 +4,6 @@
 
 #include "packer.h"
 #include "compression.h"
-#include "engine.h"
 #include "config.h"
 
 void CPacker::Reset()
diff --git a/src/engine/shared/snapshot.cpp b/src/engine/shared/snapshot.cpp
index f908d1c2..fee6afa2 100644
--- a/src/engine/shared/snapshot.cpp
+++ b/src/engine/shared/snapshot.cpp
@@ -1,7 +1,6 @@
 /* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
 /* If you are missing that file, acquire a complete release at teeworlds.com.                */
 #include "snapshot.h"
-#include "engine.h"
 #include "compression.h"
 
 // CSnapshot
diff --git a/src/engine/shared/storage.cpp b/src/engine/shared/storage.cpp
index 3d7257f4..2c7fafea 100644
--- a/src/engine/shared/storage.cpp
+++ b/src/engine/shared/storage.cpp
@@ -2,7 +2,6 @@
 /* If you are missing that file, acquire a complete release at teeworlds.com.                */
 #include <base/system.h>
 #include <engine/storage.h>
-#include "engine.h"
 #include "linereader.h"
 
 // compiled-in data-dir path