From 712ca58c011123505c807266dcc8d9d84ca1aa44 Mon Sep 17 00:00:00 2001 From: Bjørn Lindeijer Date: Fri, 27 Mar 2009 19:44:23 +0100 Subject: Made eAthena's Network class statically accessible Now the instance doesn't need to be passed into the MessageOut class anymore. Expect a lot of cleanup in the next commit. --- src/net/ea/network.cpp | 9 +++++++++ src/net/ea/network.h | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/net/ea') diff --git a/src/net/ea/network.cpp b/src/net/ea/network.cpp index e17b8f3b..4aecb268 100644 --- a/src/net/ea/network.cpp +++ b/src/net/ea/network.cpp @@ -91,6 +91,8 @@ int networkThread(void *data) return 0; } +Network *Network::mInstance = 0; + Network::Network(): mSocket(0), mAddress(), mPort(0), @@ -102,6 +104,7 @@ Network::Network(): mWorkerThread(0) { mMutex = SDL_CreateMutex(); + mInstance = this; } Network::~Network() @@ -112,6 +115,7 @@ Network::~Network() disconnect(); SDL_DestroyMutex(mMutex); + mInstance = 0; delete[] mInBuffer; delete[] mOutBuffer; @@ -420,6 +424,11 @@ void Network::receive() SDLNet_FreeSocketSet(set); } +Network *Network::instance() +{ + return mInstance; +} + void Network::setError(const std::string &error) { logger->log("Network error: %s", error.c_str()); diff --git a/src/net/ea/network.h b/src/net/ea/network.h index 651b1182..40d563aa 100644 --- a/src/net/ea/network.h +++ b/src/net/ea/network.h @@ -85,7 +85,9 @@ class Network NET_ERROR }; - protected: + private: + static Network *instance(); + void setError(const std::string &error); Uint16 readWord(int pos); @@ -113,6 +115,8 @@ class Network typedef std::map MessageHandlers; typedef MessageHandlers::iterator MessageHandlerIterator; MessageHandlers mMessageHandlers; + + static Network *mInstance; }; #endif -- cgit v1.2.3-70-g09d2