void HttpServer::asyncAccept(boost::system::error_code ec) { if (!_acceptor.is_open()) { std::cout << " Acceptor is not open to accept any new connection. " << std::endl; return; } if (!ec) { // Create new HttpClientConnection using the above socket std::cout << " New Client connection created. " << std::endl; HttpClientConnection::SmartPtr clientConn(new HttpClientConnection(_socket, _clientManager , _reqHandler)); _clientManager->start(clientConn); _socket = boost::shared_ptr<boost::asio::ip::tcp::socket>(new boost::asio::ip::tcp::socket(_ioService)); } else { std::cout << " Error while accepting : " << ec.message() << std::endl; } // Ready to accept new request do_accept(); }
void Acceptor::handleInput(int /*hint*/) { auto_ptr<Connection> clientConn(m_connection.accept(true)); auto_ptr<EventHandler> client(m_factory.createEventHandler(clientConn, m_reactor)); m_reactor.addHandler(client, Reactor::EvntRead); }