| Return Type | Function name | Arguments |
|---|---|---|
| void | hzIpServer::ServeRequests | (void) |
Declared in file: hzIpServer.h
Defined in file : hzIpServer.cpp
Function Logic:
Function body:
void hzIpServer::ServeRequests (void)
{
_hzfunc("hzIpServer::ServeRequests") ;
hzPacket tbuf ;
hzIpConnex* pCC ;
hzLogger* pLog ;
hzTcpCode rc ;
pLog = GetThreadLogger() ;
pthread_mutex_lock(&s_request_mutex);
s_nReqThreads++ ;
pthread_mutex_unlock(&s_request_mutex);
for (; !m_bShutdown ;)
{
pthread_mutex_lock(&s_request_mutex);
pthread_cond_wait(&s_request_cond, &s_request_mutex);
for (;;)
{
pCC = (hzIpConnex*) s_queRequests.Pull() ;
if (!pCC)
break ;
rc = pCC->m_OnIngress(pCC->InputZone(), pCC) ;
switch (rc)
{
case TCP_TERMINATE: pCC->Hypoxia() ;
s_queResponses.Push(pCC) ;
pthread_cond_signal(&s_response_cond) ;
break ;
case TCP_KEEPALIVE: pCC->Oxygen() ;
s_queResponses.Push(pCC) ;
pthread_cond_signal(&s_response_cond) ;
break ;
case TCP_INCOMPLETE: pCC->Oxygen() ;
pLog->Log("Client %d (sock %d): Data incomplete\n", pCC->EventNo(), pCC->CliSocket()) ;
break ;
}
}
pthread_mutex_unlock(&s_request_mutex);
}
}