Return TypeFunction nameArguments
hzEcodehzUdpClient::SendChain(hzChain&,)

Declared in file: hzUdpClient.h
Defined in file : hzUdpClient.cpp

Function Logic:

0:START 1:m_nSock==0 2:Return E_NOSOCKET 3:!C.Size() 4:Return E_NODATA 5:ci nSofar 6:!ci.eof()&&nSend 7:nSofar 8:sendto(m_nSock,m_pack.m_data,nSend,0,(structsockaddr*)&m_SvrAddr,m_SvrLen)<0 9:close m_nSock 10:Return E_SENDFAIL 11:nSofar 12:!ci.eof()&&nSend 13:nSofar 14:!nSend 15:sendto(m_nSock,m_pack.m_data,nSend,0,(structsockaddr*)&m_SvrAddr,m_SvrLen)<0 16:close m_nSock 17:Return E_SENDFAIL 18:Return E_OK

Function body:

hzEcode hzUdpClient::SendChain (hzChain& C)
{
   _hzfunc("hzUdpClient::Send(hzChain&)") ;
   chIter      ci ;
   char*       i ;
   uint32_t    nSend ;
   uint32_t    nSofar ;
   if (m_nSock == 0)
       return E_NOSOCKET ;
   if (!C.Size())
       return E_NODATA ;
   ci = C ;
   nSofar = 0;
   for (nSend = 0,i = m_pack.m_data ; !ci.eof() && nSend < HZ_MAXPACKET ; *i = *ci, i++, nSend++, ci++) ;
   nSofar = nSend ;
   if (sendto(m_nSock, m_pack.m_data, nSend, 0,(struct sockaddr*) &m_SvrAddr, m_SvrLen) < 0)
   {
       close(m_nSock) ;
       m_nSock = 0;
       hzerr(E_SENDFAIL, "Could not send to host (%s) on port %d", *m_Hostname, m_nPort) ;
       return E_SENDFAIL ;
   }
   for (; nSofar < C.Size() ;)
   {
       for (nSend = 0,i = m_pack.m_data ; !ci.eof() && nSend < HZ_MAXPACKET ; *i = *ci, nSend++, i++, ci++) ;
       nSofar += nSend ;
       if (!nSend)
           break ;
       if (sendto(m_nSock, m_pack.m_data, nSend, 0,(struct sockaddr*) &m_SvrAddr, m_SvrLen) < 0)
       {
           close(m_nSock) ;
           m_nSock = 0;
           hzerr(E_SENDFAIL, "Could not send to host (%s) on port %d", *m_Hostname, m_nPort) ;
           return E_SENDFAIL ;
       }
   }
   return E_OK ;
}