Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-02-05 00:10:02 +0000
committerStijn Buys <ingar@osirion.org>2008-02-05 00:10:02 +0000
commit95ca0e469ef856c0182bb0da411e4417391e3780 (patch)
treea07db9b9d726d175d8305dc3cc5520b8a70f7a73 /src/server
parentcf61370df80de6dc659dbd9b803c973b300c1b4c (diff)
renamed client and server application objects
cleaned up namespaces
Diffstat (limited to 'src/server')
-rw-r--r--src/server/Makefile.am4
-rw-r--r--src/server/application.cc66
-rw-r--r--src/server/application.h32
-rw-r--r--src/server/console.cc61
-rw-r--r--src/server/console.h23
-rw-r--r--src/server/server.cc97
-rw-r--r--src/server/server.h11
7 files changed, 163 insertions, 131 deletions
diff --git a/src/server/Makefile.am b/src/server/Makefile.am
index 6875dbf..0b9ba48 100644
--- a/src/server/Makefile.am
+++ b/src/server/Makefile.am
@@ -1,6 +1,6 @@
METASOURCES = AUTO
-libserver_la_SOURCES = application.cc console.cc server.cc timer.cc
-noinst_HEADERS = application.h console.h server.h timer.h
+libserver_la_SOURCES = console.cc server.cc timer.cc
+noinst_HEADERS = console.h server.h timer.h
noinst_LTLIBRARIES = libserver.la
INCLUDES = -I$(top_srcdir)/src
libserver_la_LDFLAGS = -avoid-version -no-undefined
diff --git a/src/server/application.cc b/src/server/application.cc
deleted file mode 100644
index 8ea0808..0000000
--- a/src/server/application.cc
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- server/application.cc
- This file is part of the Osirion project and is distributed under
- the terms and conditions of the GNU General Public License version 2
-*/
-
-// project headers
-#include "server/server.h"
-#include "server/application.h"
-#include "server/timer.h"
-#include "core/core.h"
-#include "game/game.h"
-
-namespace server {
-
-void Application::init()
-{
- // FIXME core should be able to load game.so
- // force initialization of the game object
- server::game = new game::Game();
-
- con_print << "Initializing server..." << std::endl;
-
- // initialize core
- core::ApplicationInterface::init();
-
- // connect to the game module
- core::ApplicationInterface::connect();
-}
-
-void Application::run()
-{
- const float server_framerate = 1.0f / 20.0f;
- server::Timer timer;
-
- timer.mark();
-
- while(true) {
- float elapsed = timer.elapsed();
-
- frame(elapsed);
-
- sys::sleep(server_framerate - elapsed);
- timer.mark();
- }
-
-}
-
-void Application::shutdown()
-{
- con_debug << "Shutting down server..." << std::endl;
-
- core::ApplicationInterface::shutdown();
-
- quit(0);
-}
-
-void Application::quit(int status)
-{
- // FIXME core should be able to unload game.so
- delete server::game;
-
- core::ApplicationInterface::quit(status);
-}
-
-}
diff --git a/src/server/application.h b/src/server/application.h
deleted file mode 100644
index b081726..0000000
--- a/src/server/application.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- server/application.h
- This file is part of the Osirion project and is distributed under
- the terms and conditions of the GNU General Public License version 2
-*/
-
-#ifndef __INCLUDED_SERVER_APPLICATION_H__
-#define __INCLUDED_SERVER_APPLICATION_H__
-
-#include "core/applicationinterface.h"
-
-namespace server {
-
-/// server Application implementation
-class Application : public core::ApplicationInterface {
-public:
- /// initialize the server Application
- virtual void init();
-
- /// run the server Application
- virtual void run();
-
- /// shutdown the server Application
- virtual void shutdown();
-
- /// quit the server Application
- virtual void quit(int status);
-};
-
-}
-#endif // __INCLUDED_SERVER_APPLICATION_H__
-
diff --git a/src/server/console.cc b/src/server/console.cc
index a2e8503..a8cc02e 100644
--- a/src/server/console.cc
+++ b/src/server/console.cc
@@ -5,10 +5,66 @@
*/
#include "server/console.h"
+#include "core/core.h"
+
#include <iostream>
-namespace server
+namespace server {
+
+namespace console {
+
+//--- private definition ------------------------------------------
+
+/// server console implementation
+class Console : public sys::ConsoleInterface {
+public:
+ /// stream to send normal messages too
+ virtual std::ostream & messagestream();
+
+ /// stream to send warning messages too
+ virtual std::ostream & warningstream();
+
+ /// stream to send warning messages too
+ virtual std::ostream & errorstream();
+
+ /// stream to send debug messages too
+ virtual std::ostream & debugstream();
+
+ unsigned long ping;
+
+};
+
+// private console object
+Console console;
+
+//--- engine functions --------------------------------------------
+
+extern "C" void func_con_ping(std::stringstream &args)
+{
+ con_print << "Ping!" << std::endl;
+ console.ping++;
+}
+
+//--- public ------------------------------------------------------
+
+void init()
+{
+ con_print << "Initializing console..." << std::endl;
+
+ // register our engine functions
+ core::func::add("con_ping", func_con_ping);
+}
+
+void shutdown()
{
+ con_print << "Shutting down console..." << std::endl;
+
+ // unregister our engine functions
+ core::func::remove("con_ping");
+}
+
+//--- private -----------------------------------------------------
+
std::ostream & Console::messagestream()
{
return std::cout;
@@ -28,5 +84,6 @@ std::ostream & Console::debugstream()
return std::cout;
}
-} // namespace server
+} // namespace console
+} // namespace server
diff --git a/src/server/console.h b/src/server/console.h
index a5f45c3..1d94ba6 100644
--- a/src/server/console.h
+++ b/src/server/console.h
@@ -11,22 +11,13 @@
namespace server {
-/// server console implementation
-class Console : public sys::ConsoleInterface {
-public:
- /// stream to send normal messages too
- virtual std::ostream & messagestream();
-
- /// stream to send warning messages too
- virtual std::ostream & warningstream();
-
- /// stream to send warning messages too
- virtual std::ostream & errorstream();
-
- /// stream to send debug messages too
- virtual std::ostream & debugstream();
-
-};
+namespace console {
+
+void init();
+
+void shutdown();
+
+} // namespace console
} // namespace server
diff --git a/src/server/server.cc b/src/server/server.cc
index fc37aa6..b6b6515 100644
--- a/src/server/server.cc
+++ b/src/server/server.cc
@@ -4,17 +4,104 @@
the terms and conditions of the GNU General Public License version 2
*/
-// project headers
-
-#include "server/application.h"
#include "server/console.h"
+#include "server/server.h"
+#include "server/timer.h"
+#include "core/core.h"
#include "game/game.h"
namespace server {
-Application application;
-Console console;
+//--- private definition ------------------------------------------
+
+/// server Application implementation
+class Server : public core::ApplicationInterface {
+public:
+ /// initialize the server Application
+ virtual void init();
+
+ /// run the server Application
+ virtual void run();
+
+ /// shutdown the server Application
+ virtual void shutdown();
+
+ /// quit the server Application
+ virtual void quit(int status);
+};
+
+Server app;
game::Game *game;
+//--- public ------------------------------------------------------
+
+/// the server main loop
+void main(int count, char **arguments)
+{
+ std::cout << "The Osirion Project " << VERSION << std::endl;
+ for (int i =0; i < count; i++)
+ std::cout << arguments[i] << " ";
+ std::cout << std::endl;
+
+ app.init();
+ app.run();
+ app.shutdown();
+}
+
+//--- private -----------------------------------------------------
+
+void Server::init()
+{
+ // FIXME core should be able to load game.so -
+ // force initialization of the game object
+ server::game = new game::Game();
+
+ con_print << "Initializing server..." << std::endl;
+
+ core::ApplicationInterface::init();
+
+ console::init();
+
+ core::ApplicationInterface::connect();
}
+void Server::run()
+{
+ const float server_framerate = 1.0f / 20.0f;
+ server::Timer timer;
+
+ timer.mark();
+
+ while(true) {
+ float elapsed = timer.elapsed();
+
+ frame(elapsed);
+
+ sys::sleep(server_framerate - elapsed);
+ timer.mark();
+ }
+
+}
+
+void Server::shutdown()
+{
+ con_debug << "Shutting down server..." << std::endl;
+
+ console::shutdown();
+
+ core::ApplicationInterface::shutdown();
+
+ quit(0);
+}
+
+void Server::quit(int status)
+{
+ // FIXME core should be able to unload game.so
+ delete server::game;
+
+ core::ApplicationInterface::quit(status);
+}
+
+
+} // namespace server
+
diff --git a/src/server/server.h b/src/server/server.h
index 7871c5f..29656bd 100644
--- a/src/server/server.h
+++ b/src/server/server.h
@@ -7,18 +7,13 @@
#ifndef __INCLUDED_SERVER_H__
#define __INCLUDED_SERVER_H__
-#include "server/application.h"
-#include "server/console.h"
#include "game/game.h"
/// contains classes and functions to run a dedicated server
namespace server {
-
-/// global server application instance
-extern Application application;
-
-/// global server console instance
-extern Console console;
+
+/// the server main loop
+void main(int count, char **arguments);
/// global Game instance
extern game::Game *game;