diff options
author | Björn Steinbrink <B.Steinbrink@gmx.de> | 2006-11-02 12:43:49 +0000 |
---|---|---|
committer | Björn Steinbrink <B.Steinbrink@gmx.de> | 2006-11-02 12:43:49 +0000 |
commit | 5f0ebee0d4d75fa91d417f4f352abdbc7502c2f0 (patch) | |
tree | b030f9ff00fceb9f90fab2c9fd56bdc16cd4126c /src/net/network.h | |
parent | fa035c2fd70945a0b12143ce9b81284d8d24d13b (diff) | |
download | mana-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.h | 125 |
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 |