ClientApplication and ServerApplication are now Singletons

This commit is contained in:
Kayne Ruse
2014-08-04 00:45:09 +10:00
parent fd320767c5
commit 908f91d674
4 changed files with 22 additions and 10 deletions
+9 -4
View File
@@ -28,18 +28,23 @@
#include "udp_network_utility.hpp"
#include "character.hpp"
#include "singleton.hpp"
#include <map>
class ClientApplication {
class ClientApplication: public Singleton<ClientApplication> {
public:
ClientApplication() = default;
~ClientApplication() = default;
//public methods
void Init(int argc, char** argv);
void Proc();
void Quit();
private:
friend Singleton<ClientApplication>;
ClientApplication() = default;
~ClientApplication() = default;
//Private access members
void LoadScene(SceneList sceneIndex);
void UnloadScene();
+3 -1
View File
@@ -32,16 +32,18 @@ using namespace std;
int main(int argc, char** argv) {
try {
//create the singletons
ClientApplication::Create();
ConfigUtility::Create();
//call the server's routines
ClientApplication app;
ClientApplication& app = ClientApplication::GetSingleton();
app.Init(argc, argv);
app.Proc();
app.Quit();
//delete the singletons
ConfigUtility::Delete();
ClientApplication::Delete();
}
catch(exception& e) {
cerr << "Fatal exception thrown: " << e.what() << endl;
+3 -1
View File
@@ -33,15 +33,17 @@ int main(int argc, char** argv) {
try {
//create the singletons
ConfigUtility::Create();
ServerApplication::Create();
//call the server's routines
ServerApplication app;
ServerApplication& app = ServerApplication::GetSingleton();
app.Init(argc, argv);
app.Proc();
app.Quit();
//delete the singletons
ConfigUtility::Delete();
ServerApplication::Delete();
}
catch(exception& e) {
cerr << "Fatal exception thrown: " << e.what() << endl;
+7 -4
View File
@@ -31,6 +31,7 @@
//common utilities
#include "udp_network_utility.hpp"
#include "config_utility.hpp"
#include "singleton.hpp"
//APIs
#include "lua/lua.hpp"
@@ -42,17 +43,19 @@
#include <string>
//The main application class
class ServerApplication {
class ServerApplication: public Singleton<ServerApplication> {
public:
//public methods
ServerApplication() = default;
~ServerApplication() = default;
void Init(int argc, char** argv);
void Proc();
void Quit();
private:
friend Singleton<ServerApplication>;
ServerApplication() = default;
~ServerApplication() = default;
//handle incoming traffic
void HandlePacket(SerialPacket* const);