Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CHTTPFileHandler Class Reference

#include <HTTPFileHandler.h>

Inheritance diagram for CHTTPFileHandler:
IHTTPRequestHandler CHTTPImageHandler CHTTPVfsHandler CHTTPWebinterfaceHandler

Public Member Functions

 ~CHTTPFileHandler () override=default
 
MHD_RESULT HandleRequest () override
 Handles the HTTP request.
 
bool CanHandleRanges () const override
 Whether the HTTP response could also be provided in ranges.
 
bool CanBeCached () const override
 Whether the HTTP response can be cached.
 
bool GetLastModifiedDate (CDateTime &lastModified) const override
 Returns the last modification date of the response data.
 
std::string GetRedirectUrl () const override
 Returns the URL to which the request should be redirected.
 
std::string GetResponseFile () const override
 Returns the path to the file that should be returned as the response.
 
- Public Member Functions inherited from IHTTPRequestHandler
virtual ~IHTTPRequestHandler ()=default
 
virtual IHTTPRequestHandlerCreate (const HTTPRequest &request) const =0
 Creates a new HTTP request handler for the given request.
 
virtual int GetPriority () const
 Returns the priority of the HTTP request handler.
 
virtual bool CanHandleRequest (const HTTPRequest &request) const =0
 Checks if the HTTP request handler can handle the given request.
 
virtual int GetMaximumAgeForCaching () const
 Returns the maximum age (in seconds) for which the response can be cached.
 
virtual HttpResponseRanges GetResponseData () const
 Returns the ranges with raw data belonging to the response.
 
const HTTPRequestGetRequest () const
 Returns the HTTP request handled by the HTTP request handler.
 
bool IsRequestRanged () const
 Returns true if the HTTP request is ranged, otherwise false.
 
void SetRequestRanged (bool ranged)
 Sets whether the HTTP request contains ranges or not.
 
void SetResponseStatus (int status)
 Sets the response status of the HTTP response.
 
bool HasResponseHeader (const std::string &field) const
 Checks if the given HTTP header field is part of the response details.
 
bool AddResponseHeader (const std::string &field, const std::string &value, bool allowMultiple=false)
 Adds the given HTTP header field and value to the response details.
 
const HTTPResponseDetailsGetResponseDetails () const
 Returns the HTTP response header details.
 
void AddPostField (const std::string &key, const std::string &value)
 Adds the given key-value pair extracted from the HTTP POST data.
 
bool AddPostData (const char *data, size_t size)
 Adds the given raw HTTP POST data.
 

Protected Member Functions

 CHTTPFileHandler ()
 
 CHTTPFileHandler (const HTTPRequest &request)
 
void SetFile (const std::string &file, int responseStatus)
 
void SetCanHandleRanges (bool canHandleRanges)
 
void SetCanBeCached (bool canBeCached)
 
void SetLastModifiedDate (const struct __stat64 *buffer)
 
- Protected Member Functions inherited from IHTTPRequestHandler
 IHTTPRequestHandler ()
 
 IHTTPRequestHandler (const HTTPRequest &request)
 
virtual bool appendPostData (const char *data, size_t size)
 
bool GetRequestedRanges (uint64_t totalLength)
 
bool GetHostnameAndPort (std::string &hostname, uint16_t &port)
 

Additional Inherited Members

- Protected Attributes inherited from IHTTPRequestHandler
HTTPRequest m_request
 
HTTPResponseDetails m_response
 
std::map< std::string, std::string > m_postFields
 

Constructor & Destructor Documentation

◆ ~CHTTPFileHandler()

CHTTPFileHandler::~CHTTPFileHandler ( )
overridedefault

◆ CHTTPFileHandler() [1/2]

CHTTPFileHandler::CHTTPFileHandler ( )
protected

◆ CHTTPFileHandler() [2/2]

CHTTPFileHandler::CHTTPFileHandler ( const HTTPRequest & request)
explicitprotected

Member Function Documentation

◆ CanBeCached()

bool CHTTPFileHandler::CanBeCached ( ) const
inlineoverridevirtual

Whether the HTTP response can be cached.

Reimplemented from IHTTPRequestHandler.

◆ CanHandleRanges()

bool CHTTPFileHandler::CanHandleRanges ( ) const
inlineoverridevirtual

Whether the HTTP response could also be provided in ranges.

Reimplemented from IHTTPRequestHandler.

◆ GetLastModifiedDate()

bool CHTTPFileHandler::GetLastModifiedDate ( CDateTime & lastModified) const
overridevirtual

Returns the last modification date of the response data.

This is only used if the response can be cached.

Reimplemented from IHTTPRequestHandler.

◆ GetRedirectUrl()

std::string CHTTPFileHandler::GetRedirectUrl ( ) const
inlineoverridevirtual

Returns the URL to which the request should be redirected.

This is only used if the response type is HTTPRedirect.

Reimplemented from IHTTPRequestHandler.

◆ GetResponseFile()

std::string CHTTPFileHandler::GetResponseFile ( ) const
inlineoverridevirtual

Returns the path to the file that should be returned as the response.

This is only used if the response type is HTTPFileDownload.

Reimplemented from IHTTPRequestHandler.

◆ HandleRequest()

MHD_RESULT CHTTPFileHandler::HandleRequest ( )
overridevirtual

Handles the HTTP request.

Returns
MHD_NO if a severe error has occurred otherwise MHD_YES.

Implements IHTTPRequestHandler.

◆ SetCanBeCached()

void CHTTPFileHandler::SetCanBeCached ( bool canBeCached)
inlineprotected

◆ SetCanHandleRanges()

void CHTTPFileHandler::SetCanHandleRanges ( bool canHandleRanges)
inlineprotected

◆ SetFile()

void CHTTPFileHandler::SetFile ( const std::string & file,
int responseStatus )
protected

◆ SetLastModifiedDate()

void CHTTPFileHandler::SetLastModifiedDate ( const struct __stat64 * buffer)
protected

The documentation for this class was generated from the following files: