/* */ #include "HttpServerResponseCommand.h" #include "SocketCore.h" #include "DownloadEngine.h" #include "HttpServer.h" #include "Logger.h" namespace aria2 { HttpServerResponseCommand::HttpServerResponseCommand (int32_t cuid, const SharedHandle& httpServer, DownloadEngine* e, const SharedHandle& socket): Command(cuid), _e(e), _socket(socket), _httpServer(httpServer) { _e->addSocketForWriteCheck(_socket, this); } HttpServerResponseCommand::~HttpServerResponseCommand() { _e->deleteSocketForWriteCheck(_socket, this); } bool HttpServerResponseCommand::execute() { _httpServer->sendResponse(); if(_httpServer->sendBufferIsEmpty()) { logger->info("CUID#%d - HttpServer: all response transmitted.", cuid); return true; } else { if(_timeout.elapsed(10)) { logger->info("CUID#%d - HttpServer: Timeout while trasmitting response.", cuid); return true; } else { _e->commands.push_back(this); return true; } } } } // namespace aria2