summaryrefslogtreecommitdiff
path: root/src/net/network.h
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2006-11-02 12:43:49 +0000
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2006-11-02 12:43:49 +0000
commit5f0ebee0d4d75fa91d417f4f352abdbc7502c2f0 (patch)
treeb030f9ff00fceb9f90fab2c9fd56bdc16cd4126c /src/net/network.h
parentfa035c2fd70945a0b12143ce9b81284d8d24d13b (diff)
downloadmana-5f0ebee0d4d75fa91d417f4f352abdbc7502c2f0.tar.gz
mana-5f0ebee0d4d75fa91d417f4f352abdbc7502c2f0.tar.bz2
mana-5f0ebee0d4d75fa91d417f4f352abdbc7502c2f0.tar.xz
mana-5f0ebee0d4d75fa91d417f4f352abdbc7502c2f0.zip
Network layer refactoring.
Diffstat (limited to 'src/net/network.h')
-rw-r--r--src/net/network.h125
1 files changed, 39 insertions, 86 deletions
diff --git a/src/net/network.h b/src/net/network.h
index 1e403c24..819115dd 100644
--- a/src/net/network.h
+++ b/src/net/network.h
@@ -21,98 +21,51 @@
* $Id$
*/
-#ifndef _TMW_NETWORK_
-#define _TMW_NETWORK_
+#ifndef _TMW_NET_NETWORK_H
+#define _TMW_NET_NETWORK_H
-#include <map>
-#include <string>
-
-#include <enet/enet.h>
+#include <iosfwd>
class MessageHandler;
class MessageOut;
-/**
- * The client network layer. Facilitates connecting and communicating to the
- * account, game and chat servers. Also routes incoming message to the
- * appropriate message handlers.
- */
-class Network
+namespace Net
{
- public:
- /**
- * Sets up the local host.
- */
- static void
- initialize();
-
- /**
- * Closes the connections.
- */
- static void
- finalize();
-
- enum Server {
- ACCOUNT,
- GAME,
- CHAT
- };
-
- enum State {
- NET_OK,
- NET_ERROR
- };
-
- /**
- * Connects to the given server with the specified address and port.
- * This method is non-blocking, use isConnected to check whether the
- * server is connected.
- */
- static bool
- connect(Server server, const std::string &address, short port);
-
- /**
- * Disconnects from the given server.
- */
- static void
- disconnect(Server server);
-
- /**
- * Registers a message handler. A message handler handles a certain
- * subset of incoming messages.
- */
- static void
- registerHandler(MessageHandler *handler);
-
- /**
- * Unregisters a message handler.
- */
- static void
- unregisterHandler(MessageHandler *handler);
-
- static void
- clearHandlers();
-
- static State
- getState();
-
- /**
- * Returns whether the given server is connected.
- */
- static bool
- isConnected(Server server);
-
- static void
- flush();
-
- /**
- * Sends a message to a given server. The server should be connected.
- */
- static void
- send(Server server, const MessageOut &msg);
+ class Connection;
+
+ /**
+ * Initializes the network subsystem.
+ */
+ void initialize();
+
+ /**
+ * Finalizes the network subsystem.
+ */
+ void finalize();
+
+ Connection *getConnection();
+
+ /**
+ * Registers a message handler. A message handler handles a certain
+ * subset of incoming messages.
+ */
+ void registerHandler(MessageHandler *handler);
+
+ /**
+ * Unregisters a message handler.
+ */
+ void unregisterHandler(MessageHandler *handler);
+
+ /**
+ * Clears all registered message handlers.
+ */
+ void clearHandlers();
+
+ /*
+ * Handles all events and dispatches incoming messages to the
+ * registered handlers
+ */
+ void flush();
};
-/** Convert an address from int format to string */
-char *iptostring(int address);
-
#endif