RealmListSrv.h
上传用户:jxpjxmjjw
上传日期:2009-12-07
资源大小:5877k
文件大小:2k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. // Copyright (C) 2004 Team Python
  2. //  
  3. // This program is free software; you can redistribute it and/or modify
  4. // it under the terms of the GNU General Public License as published by
  5. // the Free Software Foundation; either version 2 of the License, or
  6. // (at your option) any later version.
  7. // 
  8. // This program is distributed in the hope that it will be useful,
  9. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. // GNU General Public License for more details.
  12. // 
  13. // You should have received a copy of the GNU General Public License
  14. // along with this program; if not, write to the Free Software 
  15. // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  16. // RealmListSrv.h: interface for the RealmListSrv class.
  17. //
  18. //////////////////////////////////////////////////////////////////////
  19. #ifndef WOWPYTHONSERVER_REALMLISTSRV_H
  20. #define WOWPYTHONSERVER_REALMLISTSRV_H
  21. #include "RealmClient.h"
  22. #include "Server.h"
  23. class RealmListSrv : public Server, public Singleton < RealmListSrv >
  24. {
  25. public:
  26. RealmListSrv();
  27. ~RealmListSrv();
  28.   void addRealm( char * name, char * address, uint8 icon, uint8 color, uint32 players = 0 );
  29.   void setRealm( char * name, uint8 icon, uint8 color, uint32 players = 0 );
  30.   void printRealms();
  31.   void removeRealm( char * name );
  32. protected:
  33.   virtual void client_sockevent(struct nlink_client *cptr, unsigned short revents);
  34.   virtual void server_sockevent( nlink_server *cptr, uint16 revents, void *myNet );
  35.   virtual void disconnect_client( struct nlink_client *cptr );
  36.   
  37.   struct Realm {
  38.     std::string address;
  39.     uint32 players;
  40. uint8 icon;
  41. uint8 color;
  42.   };
  43.   typedef std::map < std::string, Realm * > RealmMap;
  44.   RealmMap mRealms;
  45.   struct Patch {
  46.       uint8 Hash[16];
  47.       char Platform[4];
  48.   };
  49.   
  50.   typedef std::map < uint32, Patch * > PatchMap;
  51.   PatchMap mPatches;
  52. };
  53. #endif // ndef WOWPYTHONSERVER_REALMLISTSRV_H