Return TypeFunction nameArguments
hzEcodehzIpConnex::SendData(const hzChain&,const hzChain&,)

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

Function Logic:

0:START 1:!Hdr.Size()&&!Body.Size() 2:hzLogger::Log 3:Return E_NODATA 4:Hdr.Size()&&Body.Size() 5:hzPktQue::Push hzPktQue::Push 6:hzChain::Size hzChain::Size m_nTotalOut RealtimeNano m_nsSendBeg epEventNew epEventNew 7:epoll_ctl(s_pTheOneAndOnlyServer->s_epollSocket,EPOLL_CTL_MOD,m_nSock,&epEventNew)<0 8:strerror hzLogger::Log 9:close(m_nSock)<0 10:hzLogger::Log 11:Return E_OK

Function body:

hzEcode hzIpConnex::SendData (const hzChain& Hdr, const hzChain& Body)
{
   _hzfunc("hzIpConnex::SendData(1)") ;
   struct epoll_event  epEventNew ;
   if (!Hdr.Size() && !Body.Size())
   {
       m_pLog->Log("No data queued for output\n") ;
       return E_NODATA ;
   }
   if (Hdr.Size() && Body.Size())
   {
       m_Outgoing.Push(Hdr) ;
       m_Outgoing.Push(Body) ;
   }
   m_nTotalOut = Hdr.Size() + Body.Size() ;
   m_nsSendBeg = RealtimeNano() ;
   epEventNew.data.fd = m_nSock ;
   epEventNew.events = EPOLLIN | EPOLLOUT | EPOLLET ;
   if (epoll_ctl(s_pTheOneAndOnlyServer->s_epollSocket, EPOLL_CTL_MOD, m_nSock, &epEventNew) < 0)
   {
       m_pLog->Log("EPOLL ERROR: Could not add client connection write handler on sock %d/%d. Error=%s\n", m_nSock, m_nPort, strerror(errno)) ;
       if (close(m_nSock) < 0)
           m_pLog->Log("NOTE: Could not close socket %d after epoll error. errno=%d\n", m_nSock, errno) ;
   }
   return E_OK ;
}