serversession.h
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Visual C++

  1. /***************************************************************************
  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.  *   copyright            : (C) 2002 by Zhang Yong                         *
  9.  *   email                : z-yong163@163.com                              *
  10.  ***************************************************************************/
  11. #ifndef _SERVER_SESSION_H
  12. #define _SERVER_SESSION_H
  13. #include "udpsession.h"
  14. #include "sessionlistener.h"
  15. #include "sockssession.h"
  16. #include "httpsession.h"
  17. class IcqInfo;
  18. class IcqUser;
  19. class ServerSession : public UdpSession, public SessionListener {
  20. public:
  21. ServerSession(IcqLink *link);
  22. virtual ~ServerSession();
  23. virtual void sessionFinished(bool success);
  24. void connect(const char *host, uint16 port);
  25. uint16 regNewUIN(const char *passwd);
  26. uint16 getContactList();
  27. void sendKeepAlive();
  28. uint16 login(const char *passwd, uint32 status = 0);
  29. void logout();
  30. void changeStatus(uint32 status);
  31. uint16 updateContact(uint32 uin);
  32. uint16 modifyUser(IcqUser *info, uint8 modifyPasswd = 0);
  33. void updateUser();
  34. uint16 sendMessage(uint8 type, uint32 to, const char *text);
  35. uint16 groupSendMessage(uint8 type, UinList &uinList, const char *text);
  36. uint16 searchRandom();
  37. uint16 searchCustom(uint32 uin, const char *nick, const char *email, uint32 startUIN);
  38. uint16 addFriend(uint32 uin);
  39. uint16 delFriend(uint32 uin);
  40. uint16 broadcastMsg(uint8 type, uint32 expire, const char *text);
  41. uint16 ackseq;
  42. uint32 sessionCount;
  43. private:
  44. virtual bool onPacketReceived(UdpInPacket &in);
  45. virtual void sendDirect(UdpOutPacket *p);
  46. virtual void onSendError(UdpOutPacket *p);
  47. uint16 sendPacket(UdpOutPacket *);
  48. void getInfo(IcqInfo &info, UdpInPacket &);
  49. void onNewUINReply(UdpInPacket &);
  50. void onContactListReply(UdpInPacket &);
  51. void onLoginReply(UdpInPacket &);
  52. void onUserOnline(UdpInPacket &);
  53. void onUserOffline(UdpInPacket &);
  54. void onMultiOnline(UdpInPacket &);
  55. void onStatusChanged(UdpInPacket &);
  56. void onUpdateContactReply(UdpInPacket &);
  57. void onUpdateUserReply(UdpInPacket &);
  58. void onRecvMessage(UdpInPacket &);
  59. void onSearchReply(UdpInPacket &);
  60. void onAddFriendReply(UdpInPacket &);
  61. uint32 realIP;
  62. SocksSession socksSession;
  63. HttpSession httpSession;
  64. };
  65. #endif