/* */ #ifndef _D_HTTP_RESPONSE_H_ #define _D_HTTP_RESPONSE_H_ #include "common.h" #include "SharedHandle.h" #include namespace aria2 { class HttpRequest; class HttpHeader; class TransferEncoding; class Logger; class HttpResponse { private: int32_t cuid; unsigned int status; SharedHandle httpRequest; SharedHandle httpHeader; const Logger* logger; public: HttpResponse(); ~HttpResponse(); void validateResponse() const; /** * Returns filename. * If content-disposition header is privided in response header, * this function returns the filename from it. * If it is not there, returns the part of filename from the request URL. */ std::string determinFilename() const; void retrieveCookie(); /** * Returns true if the response header indicates redirection. */ bool isRedirect() const; void processRedirect(); std::string getRedirectURI() const; bool isTransferEncodingSpecified() const; std::string getTransferEncoding() const; SharedHandle getTransferDecoder() const; uint64_t getContentLength() const; uint64_t getEntityLength() const; std::string getContentType() const; void setHttpHeader(const SharedHandle& httpHeader); SharedHandle getHttpHeader() const; void setStatus(unsigned int status) { this->status = status; } unsigned int getStatus() const { return status; } void setHttpRequest(const SharedHandle& httpRequest); SharedHandle getHttpRequest() const; void setCuid(int32_t cuid) { this->cuid = cuid; } }; typedef SharedHandle HttpResponseHandle; } // namespace aria2 #endif // _D_HTTP_RESPONSE_H_