00001 #ifndef __CHM_MFC_SOCKET_TRANSPORT_H__
00002 #define __CHM_MFC_SOCKET_TRANSPORT_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <CHM/CHMtransport.h>
00015
00016 #if _MSC_VER > 1000
00017 #pragma once
00018 #endif // _MSC_VER > 1000
00019 #include <afxsock.h>
00020
00021
00022
00023 class CHMmfcSocketTransportPrivate;
00024
00032 class CHMmfcSocketTransport
00033 : public CHMtransport,
00034 public CSocket
00035 {
00036 public:
00041 CHMmfcSocketTransport();
00043 virtual ~CHMmfcSocketTransport();
00044
00046 virtual void Close();
00047
00049 virtual BOOL Connect(LPCTSTR Host, UINT PortNumber);
00050
00051
00052 enum
00053 {
00054 SOCKET_DOES_NOT_EXIST = 0x8001,
00055 SOCKET_NOT_A_SERVER = 0x8002
00056 };
00057
00058
00059
00061 virtual void OnReceive(int nErrorCode);
00063 virtual void OnAccept(int nErrorCode);
00065 virtual void OnClose(int nErrorCode);
00066
00067
00068
00069
00070
00071
00072
00073
00078 virtual void SendMessage(const CHMstring& Data);
00079
00085 virtual void SendResponseMessage(const CHMstring& MessageData,
00086 size_t TransportIndex);
00087
00092 const size_t& TransportIndex() const;
00093
00094 private:
00095 CHMmfcSocketTransportPrivate* pMember;
00096
00097 CHMmfcSocketTransport(const CHMmfcSocketTransport& Orig);
00098 CHMmfcSocketTransport& operator=(const CHMmfcSocketTransport& Orig);
00099 void GetDataWithoutNullChars(CHMstring& Buffer, size_t CountOfChar);
00100 };
00101
00102 #endif // end of defensive include