diff options
Diffstat (limited to 'src/net/ea')
-rw-r--r-- | src/net/ea/network.cpp | 9 | ||||
-rw-r--r-- | src/net/ea/network.h | 6 |
2 files changed, 14 insertions, 1 deletions
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<Uint16, MessageHandler*> MessageHandlers; typedef MessageHandlers::iterator MessageHandlerIterator; MessageHandlers mMessageHandlers; + + static Network *mInstance; }; #endif |