Logo
~Sockets~
~Examples~
~Contact~


SmallSocket.h

Go to the documentation of this file.
00001 //SmallSocket.h
00002 /*
00003 Copyright (C) 2004  Anders Hedstrom
00004 
00005 This program is free software; you can redistribute it and/or
00006 modify it under the terms of the GNU General Public License
00007 as published by the Free Software Foundation; either version 2
00008 of the License, or (at your option) any later version.
00009 
00010 This program is distributed in the hope that it will be useful,
00011 but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 GNU General Public License for more details.
00014 
00015 You should have received a copy of the GNU General Public License
00016 along with this program; if not, write to the Free Software
00017 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00018 */
00019 
00020 #ifndef _CHATSOCKET_H
00021 #define _CHATSOCKET_H
00022 
00023 #include "SmallHandler.h"
00024 #include <TcpSocket.h>
00025 #include "PlayerFactory.h"
00026 
00027 
00028 enum {
00029         STATE_LOGIN = 1,
00030         STATE_PROMPT,
00031         STATE_QUIT,
00032         STATE_PASSWORD,
00033         STATE_NEW_PLAYER_QUESTION,
00034         STATE_PASSWORD_1,
00035         STATE_PASSWORD_2,
00036 };
00037 
00038 
00041 class SmallSocket : public TcpSocket
00042 {
00043 public:
00044         SmallSocket(ISocketHandler& );
00045         ~SmallSocket();
00046 
00047         void OnAccept();
00048         void OnLine(const std::string& );
00049 
00050         const std::string& GetName() { return m_name; }
00051         bool IsAt(int x,int y);
00052         int GetX() { return m_x; }
00053         int GetY() { return m_y; }
00054 
00055         World& GetWorld() { return static_cast<SmallHandler&>(Handler()).GetWorld(); }
00056         void try_move(const std::string& );
00057         void SendPrompt();
00058         PlayerFactory& GetPlayerF() { return static_cast<SmallHandler&>(Handler()).GetPlayerF(); }
00059         void Send(const std::string& );
00060         void TryGet(SmallSocket *,const std::string&);
00061         void TryDrop(SmallSocket *,const std::string&);
00062 
00063 private:
00064         int m_state;
00065         std::string m_name;
00066         int m_x;
00067         int m_y;
00068         PlayerFactory::PLAYER *m_player;
00069         std::string m_passwd;
00070 };
00071 
00072 
00073 #endif // _CHATSOCKET_H
Page, code, and content Copyright (C) 2006 by Anders Hedström
Generated on Mon Aug 29 20:21:47 2005 for C++ Sockets by  doxygen 1.4.4