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

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 _TCP_SESSION_BASE
  12. #define _TCP_SESSION_BASE
  13. #include "icqtypes.h"
  14. class OutPacket;
  15. class InPacket;
  16. class IcqLinkBase;
  17. class TcpSessionListener {
  18. public:
  19. virtual bool onTcpEstablished() { return false; }
  20. virtual bool onReceive() { return false; }
  21. virtual void onSend() = 0;
  22. virtual void onClose() = 0;
  23. virtual bool onPacketReceived(InPacket &in) = 0;
  24. };
  25. class TcpSessionBase {
  26. public:
  27. virtual IcqLinkBase *getLink() = 0;
  28. virtual int getSocket() = 0;
  29. virtual uint32 getRemoteUIN() = 0;
  30. virtual void destroy() = 0;
  31. virtual void shutdown() = 0;
  32. virtual bool isSendSession() = 0;
  33. virtual void enableWrite() = 0;
  34. virtual OutPacket *createPacket(uint16 cmd) = 0;
  35. virtual bool sendPacket(OutPacket *out) = 0;
  36. };
  37. #endif