本文整理汇总了C++中HttpConnection::toBeDeleted方法的典型用法代码示例。如果您正苦于以下问题:C++ HttpConnection::toBeDeleted方法的具体用法?C++ HttpConnection::toBeDeleted怎么用?C++ HttpConnection::toBeDeleted使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpConnection
的用法示例。
在下文中一共展示了HttpConnection::toBeDeleted方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: run
int HttpServer::run(void* runArg)
{
OsConnectionSocket* requestSocket = NULL;
if (!mpServerSocket->isOk())
{
OsSysLog::add( FAC_SIP, PRI_ERR, "HttpServer: port not ok" );
httpStatus = OS_PORT_IN_USE;
}
while(!isShuttingDown() && mpServerSocket->isOk())
{
requestSocket = mpServerSocket->accept();
if(requestSocket)
{
if (mbPersistentConnection)
{
// Take this opportunity to check for any old HttpConnections that can be deleted
int items = mpHttpConnectionList->entries();
if (items != 0)
{
int deleted = 0;
UtlSListIterator iterator(*mpHttpConnectionList);
HttpConnection* connection;
while ((connection = dynamic_cast<HttpConnection*>(iterator())))
{
if (connection->toBeDeleted())
{
OsSysLog::add(FAC_SIP, PRI_DEBUG,
"HttpServer: destroying connection %p",
connection);
mpHttpConnectionList->destroy(connection);
++deleted;
if (mHttpConnections > 0)
{
--mHttpConnections;
}
}
}
items = mpHttpConnectionList->entries();
OsSysLog::add(FAC_SIP, PRI_DEBUG,
"HttpServer: "
"destroyed %d inactive HttpConnections, %d remaining",
deleted, items);
}
// Create new persistent connection
if (mHttpConnections < MAX_PERSISTENT_HTTP_CONNECTIONS)
{
++mHttpConnections;
HttpConnection* newConnection = new HttpConnection(requestSocket, this);
mpHttpConnectionList->append(newConnection);
OsSysLog::add(FAC_SIP, PRI_INFO,
"HttpServer::run starting persistent connection %d (%p)",
mHttpConnections, newConnection);
newConnection->start();
}
else
{
OsSysLog::add(FAC_SIP, PRI_ERR,
"HttpServer::run exceeded persistent connection limit (%d):"
" sending 503",
MAX_PERSISTENT_HTTP_CONNECTIONS);
HttpMessage request;
HttpMessage response;
// Read the http request from the socket
request.read(requestSocket);
// Send out-of-resources message
response.setResponseFirstHeaderLine(HTTP_PROTOCOL_VERSION,
HTTP_OUT_OF_RESOURCES_CODE,
HTTP_OUT_OF_RESOURCES_TEXT);
response.write(requestSocket);
requestSocket->close();
delete requestSocket;
requestSocket = NULL;
}
}
else
{
HttpMessage request;
// Read a http request from the socket
request.read(requestSocket);
UtlString remoteIp;
requestSocket->getRemoteHostIp(&remoteIp);
HttpMessage* response = NULL;
// If request from Valid IP Address
if( processRequestIpAddr(remoteIp, request, response))
{
// If the request is authorized
processRequest(request, response, requestSocket);
}
if(response)
{
//.........这里部分代码省略.........