00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #if !defined(AFX_TCPSOCKETASYNCDELEGATOR_H__E2DEE665_2EE9_4740_B7B9_D598F7E6E981__INCLUDED_)
00037 #define AFX_TCPSOCKETASYNCDELEGATOR_H__E2DEE665_2EE9_4740_B7B9_D598F7E6E981__INCLUDED_
00038
00039 #if _MSC_VER > 1000
00040 #pragma once
00041 #endif // _MSC_VER > 1000
00042
00043 #include "ErrorHandler.h"
00044
00045 #include "SocketBase.h"
00046
00047 KOMODIA_NAMESPACE_START
00048
00049 class CTCPSocket;
00050 class CTCPSocketAsync;
00051
00052 class CTCPSocketAsyncDelegator : public CErrorHandler
00053 {
00054 public:
00055
00056
00057
00058 BOOL SocketConnected(int iErrorCode,
00059 BOOL bNoEvent=FALSE);
00060
00061
00062 BOOL LocalSocketReceive(int iErrorCode,
00063 BOOL bNoEvent=FALSE);
00064
00065
00066
00067 BOOL LocalSocketConnect(int iErrorCode,
00068 BOOL bNoEvent);
00069
00070
00071 BOOL LocalSocketClose(int iErrorCode,
00072 BOOL bNoEvent);
00073
00074
00075 BOOL LocalSocketAccept(int iErrorCode,
00076 BOOL bNoEvent);
00077
00078
00079 BOOL OnSocketConnect(int iErrorCode);
00080
00081
00082
00083 BOOL LocalConnect(unsigned short usSourcePort,
00084 IP aDestinationAddress,
00085 unsigned short usDestinationPort,
00086 BOOL bDisableAsync,
00087 BOOL bForceErrorEvent);
00088
00089
00090 BOOL LocalBind(IP aSourceAddress,
00091 unsigned short usPort);
00092
00093
00094 IP LocalGetBindAddress()const;
00095
00096
00097 unsigned short LocalGetBindPort()const;
00098
00099
00100 BOOL LocalListen(unsigned long ulBackLog);
00101
00102
00103 BOOL LocalAccept(CTCPSocket* pNewSocket);
00104
00105
00106
00107 void SetAcceptance(CTCPSocket* pNewSocket,
00108 SOCKET aSocket,
00109 sockaddr_in aAddress)const;
00110
00111
00112 void SystemTimeout();
00113
00114
00115 void SetConnectedTo(const sockaddr_in& rAddress);
00116
00117
00118 void SwitchEventsType();
00119
00120
00121 BOOL SetAsync();
00122
00123
00124 BOOL ClearEvents();
00125
00126
00127 SOCKET Detach();
00128
00129
00130 CTCPSocketAsyncDelegator(CTCPSocketAsync* pSocket);
00131 virtual ~CTCPSocketAsyncDelegator();
00132 protected:
00133
00134 CTCPSocketAsync* GetSocket()const;
00135 private:
00136
00137 CTCPSocketAsyncDelegator(const CTCPSocketAsyncDelegator& rDelegator);
00138
00139
00140 CTCPSocketAsyncDelegator& operator=(const CTCPSocketAsyncDelegator& rDelegator);
00141
00142
00143 CTCPSocketAsync* m_pSocket;
00144 };
00145
00146 KOMODIA_NAMESPACE_END
00147
00148 #endif // !defined(AFX_TCPSOCKETASYNCDELEGATOR_H__E2DEE665_2EE9_4740_B7B9_D598F7E6E981__INCLUDED_)