summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/network.cpp9
-rw-r--r--src/net/ea/network.h6
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