00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "InSocket.h"
00023 #include "OutSocket.h"
00024
00025
00026
00027
00028 OutSocket::OutSocket(ISocketHandler& h)
00029 :TcpSocket(h, 32000, 32000)
00030 ,m_remote(NULL)
00031 {
00032 }
00033
00034
00035 OutSocket::~OutSocket()
00036 {
00037 }
00038
00039
00040 void OutSocket::OnDelete()
00041 {
00042 if (Handler().Valid(m_remote))
00043 {
00044 m_remote -> SetCloseAndDelete();
00045 }
00046 }
00047
00048
00049 void OutSocket::OnRawData(const char *p,size_t l)
00050 {
00051 if (Handler().Valid(m_remote))
00052 {
00053 m_remote -> SendBuf(p, l);
00054 }
00055 else
00056 {
00057 Handler().LogError(this, "OnRawData", 0, "m_remote not valid");
00058 }
00059 }
00060
00061
00062 void OutSocket::OnConnect()
00063 {
00064 if (Handler().Valid(m_remote))
00065 {
00066 if (m_remote -> tmpl)
00067 {
00068 printf("Sending %d early bytes\n",m_remote -> tmpl);
00069 SendBuf(m_remote -> tmps, m_remote -> tmpl);
00070 m_remote -> tmpl = 0;
00071 }
00072 }
00073 }
00074
00075