/* $Id: serverconnectiondirect.hpp,v 1.3 2005/11/30 21:36:06 chfreund Exp $ */ #ifndef _SERVERCONNECTIONDIRECT_HPP_ #define _SERVERCONNECTIONDIRECT_HPP_ #include #include #include "serverconnection.hpp" #include "serverentry.hpp" struct Message; struct EchoMessage; class ClientConnectionDirect; //! A server connection class using direct access class ServerConnectionDirect : public ServerConnection { private: //! Handle for the counterpart on server side ClientConnectionDirect* m_directConnection; //! Message queue for general messages std::deque m_messageQueue; //! Message queue for echo messages std::deque m_echoMessageQueue; public: //! Constructor ServerConnectionDirect( Server* server ); //! Destructor virtual ~ServerConnectionDirect(); //! \name Implementation of abstract functions of the base class //@{ ServerEntry::Type getType() const { return ServerEntry::DIRECT; } bool checkConnection( ServerEntry* server ); bool openConnection(); void closeConnection(); void sendMessage( Message* message ); void recvMessage( Message* message ); EchoMessage* getEchoMessage( Uint32 frame ); Message* popMessage(); Message* peekMessage(); //@} }; #endif // _SERVERCONNECTIONDIRECT_HPP_