/* */ #ifndef D_HTTP_RESPONSE_H #define D_HTTP_RESPONSE_H #include "common.h" #include #include #include "SharedHandle.h" #include "TimeA2.h" #include "Command.h" namespace aria2 { class HttpRequest; class HttpHeader; class StreamFilter; class MetalinkHttpEntry; class Option; class Checksum; class HttpResponse { private: cuid_t cuid_; SharedHandle httpRequest_; SharedHandle httpHeader_; 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 getTransferEncodingStreamFilter() const; bool isContentEncodingSpecified() const; const std::string& getContentEncoding() const; SharedHandle getContentEncodingStreamFilter() const; uint64_t getContentLength() const; uint64_t getEntityLength() const; // Returns type "/" subtype. The parameter is removed. std::string getContentType() const; void setHttpHeader(const SharedHandle& httpHeader); const SharedHandle& getHttpHeader() const { return httpHeader_; } int getStatusCode() const; void setHttpRequest(const SharedHandle& httpRequest); const SharedHandle& getHttpRequest() const { return httpRequest_; } void setCuid(cuid_t cuid) { cuid_ = cuid; } bool hasRetryAfter() const; time_t getRetryAfter() const; Time getLastModifiedTime() const; bool supportsPersistentConnection() const; void getMetalinKHttpEntries (std::vector& result, const SharedHandle