/* */ #ifndef _D_HTTP_RESPONSE_H_ #define _D_HTTP_RESPONSE_H_ #include "common.h" #include "SharedHandle.h" #include "TimeA2.h" #include namespace aria2 { class HttpRequest; class HttpHeader; class Logger; class Decoder; class HttpResponse { private: int32_t cuid; SharedHandle httpRequest; SharedHandle httpHeader; 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 getTransferEncodingDecoder() const; bool isContentEncodingSpecified() const; const std::string& getContentEncoding() const; SharedHandle getContentEncodingDecoder() const; uint64_t getContentLength() const; uint64_t getEntityLength() const; std::string getContentType() const; void setHttpHeader(const SharedHandle& httpHeader); SharedHandle getHttpHeader() const; const std::string& getResponseStatus() const; void setHttpRequest(const SharedHandle& httpRequest); SharedHandle getHttpRequest() const; void setCuid(int32_t cuid) { this->cuid = cuid; } bool hasRetryAfter() const; time_t getRetryAfter() const; Time getLastModifiedTime() const; }; typedef SharedHandle HttpResponseHandle; } // namespace aria2 #endif // _D_HTTP_RESPONSE_H_