diff options
Diffstat (limited to 'src/net/ea/network.h')
-rw-r--r-- | src/net/ea/network.h | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/src/net/ea/network.h b/src/net/ea/network.h deleted file mode 100644 index 0b391bf0..00000000 --- a/src/net/ea/network.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * The Mana Client - * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * - * This file is part of The Mana Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef NET_EA_NETWORK_H -#define NET_EA_NETWORK_H - -#include "net/serverinfo.h" - -#include "net/ea/messagehandler.h" -#include "net/ea/messagein.h" -#include "net/ea/messageout.h" - -#include <SDL_net.h> -#include <SDL_thread.h> - -#include <map> -#include <string> - -/** - * Protocol version, reported to the eAthena char and mapserver who can adjust - * the protocol accordingly. - */ -#define CLIENT_PROTOCOL_VERSION 1 - -namespace EAthena { - -class Network -{ - public: - Network(); - - ~Network(); - - bool connect(ServerInfo server); - - void disconnect(); - - ServerInfo getServer() const - { return mServer; } - - void registerHandler(MessageHandler *handler); - - void unregisterHandler(MessageHandler *handler); - - void clearHandlers(); - - int getState() const { return mState; } - - const std::string &getError() const { return mError; } - - bool isConnected() const { return mState == CONNECTED; } - - int getInSize() const { return mInSize; } - - void skip(int len); - - bool messageReady(); - - MessageIn getNextMessage(); - - void dispatchMessages(); - - void flush(); - - // ERROR replaced by NET_ERROR because already defined in Windows - enum { - IDLE, - CONNECTED, - CONNECTING, - DATA, - NET_ERROR - }; - - protected: - friend int networkThread(void *data); - friend class MessageOut; - - static Network *instance(); - - void setError(const std::string &error); - - Uint16 readWord(int pos); - - bool realConnect(); - - void receive(); - - TCPsocket mSocket; - - ServerInfo mServer; - - char *mInBuffer, *mOutBuffer; - unsigned int mInSize, mOutSize; - - unsigned int mToSkip; - - int mState; - std::string mError; - - SDL_Thread *mWorkerThread; - SDL_mutex *mMutex; - - typedef std::map<Uint16, MessageHandler*> MessageHandlers; - typedef MessageHandlers::iterator MessageHandlerIterator; - MessageHandlers mMessageHandlers; - - static Network *mInstance; -}; - -} // namespace EAthena - -#endif // NET_EA_NETWORK_H |