summaryrefslogtreecommitdiff
path: root/src/net/network.h
diff options
context:
space:
mode:
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