/* */ #ifndef D_HTTP_SERVER_BODY_COMMAND_H #define D_HTTP_SERVER_BODY_COMMAND_H #include "Command.h" #include "SharedHandle.h" #include "TimerA2.h" #include "ValueBase.h" #include "RpcResponse.h" namespace aria2 { class DownloadEngine; class SocketCore; class HttpServer; class HttpServerBodyCommand : public Command { private: DownloadEngine* e_; SharedHandle socket_; SharedHandle httpServer_; Timer timeoutTimer_; void sendJsonRpcErrorResponse (const std::string& httpStatus, int code, const std::string& message, const SharedHandle& id, const std::string& callback); void sendJsonRpcResponse (const rpc::RpcResponse& res, const std::string& callback); void sendJsonRpcBatchResponse (const std::vector& results, const std::string& callback); rpc::RpcResponse processJsonRpcRequest(const Dict* jsondict); void addHttpServerResponseCommand(); public: HttpServerBodyCommand(cuid_t cuid, const SharedHandle& httpServer, DownloadEngine* e, const SharedHandle& socket); virtual ~HttpServerBodyCommand(); virtual bool execute(); }; } // namespace aria2 #endif // D_HTTP_SERVER_BODY_COMMAND_H