SuperTuxKart
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Online::HTTPRequest Class Reference

A http request. More...

#include <http_request.hpp>

Inheritance diagram for Online::HTTPRequest:
Inheritance graph
[legend]

Public Member Functions

 HTTPRequest (int priority=1)
 Creates a HTTP(S) request that will have a raw string as result. More...
 
 HTTPRequest (const std::string &filename, int priority=1)
 This constructor configures this request to save the data in a file. More...
 
 HTTPRequest (const char *const filename, int priority=1)
 Char * needs a separate constructor, otherwise it will be considered to be the no-filename constructor (char* -> bool).
 
virtual bool isAllowedToAdd () const OVERRIDE
 Checks the request if it has enough (correct) information to be executed (and thus allowed to add to the queue).
 
void setApiURL (const std::string &url, const std::string &action)
 A handy shortcut that appends the given path to the URL of the mutiplayer server. More...
 
void setAddonsURL (const std::string &path)
 A handy shortcut that appends the given path to the URL of the addons server. More...
 
virtual bool hadDownloadError () const
 Returns true if there was an error downloading the file.
 
void setDownloadAssetsRequest (bool val)
 
const char * getDownloadErrorMessage () const
 Returns the error message if an error has occurred.
 
const std::string & getData () const
 Returns the downloaded string. More...
 
void addParameter (const std::string &name, const std::string &value)
 Sets a parameter to 'value' (std::string).
 
void addParameter (const std::string &name, const irr::core::stringw &value)
 Sets a parameter to 'value' (stringw).
 
template<typename T >
void addParameter (const std::string &name, const T &value)
 Sets a parameter to 'value' (arbitrary types).
 
float getProgress () const
 Returns the current progress.
 
void setProgress (float f)
 Sets the current progress.
 
const std::string & getURL () const
 
void setURL (const std::string &url)
 Sets the URL for this request.
 
const std::string & getFileName () const
 
double getTotalSize () const
 
void setTotalSize (double d)
 
- Public Member Functions inherited from Online::Request
 Request (int priority, int type)
 Creates a request that can be handled by the RequestManager. More...
 
void execute ()
 Executes the request. More...
 
void executeNow ()
 Executes the request now, i.e. More...
 
void queue ()
 Inserts this request into the RequestManager's queue for executing.
 
virtual void callback ()
 Executed when a request has finished.
 
int getType () const
 Returns the type of the request.
 
int getPriority () const
 Returns the priority of this request.
 
void cancel ()
 Signals that this request should be canceled.
 
bool isCancelled () const
 Returns if this request is to be canceled.
 
bool isAbortable () const
 Returns if this request can be aborted.
 
void setAbortable (bool b)
 Sets if this request is abortable or not.
 
void setBusy ()
 Sets the request state to busy.
 
void setExecuted ()
 Sets the request to be completed.
 
void setDone ()
 Should only be called by the manager.
 
bool isDone () const
 Returns if this request is done.
 
bool isPreparing () const
 Returns if this request is being prepared.
 
bool isBusy () const
 Returns if this request is busy.
 
bool hasBeenExecuted () const
 Checks if the request has completed or done (i.e. More...
 

Protected Member Functions

virtual void operation () OVERRIDE
 The actual operation to be executed. More...
 
void init ()
 Initialises all member variables.
 
- Protected Member Functions inherited from Online::Request
virtual void prepareOperation ()
 Virtual function to be called before an operation.
 
virtual void afterOperation ()
 Virtual function to be called after an operation.
 

Protected Attributes

std::string m_filename
 Contains a filename if the data should be saved into a file instead of being kept in memory. More...
 
bool m_disable_sending_log
 
bool m_download_assets_request
 
- Protected Attributes inherited from Online::Request
Synchronised< bool > m_cancel
 Cancel this request if it is active.
 
Synchronised< bool > m_is_abortable
 If this request can be aborted (at the end of STK). More...
 
Synchronised< Statem_state
 Set to though if the reply of the request is in and callbacks are executed.
 

Private Member Functions

std::string urlEncode (const std::string &value)
 
void logMessage ()
 

Private Attributes

std::atomic< float > m_progress
 The progress indicator. More...
 
std::atomic< double > m_total_size
 
std::string m_url
 The url to download.
 
std::string m_parameters
 The POST parameters that will be sent with the request.
 
int64_t m_result_code
 Result code from request implementation, 0 if succeeded.
 
std::string m_string_buffer
 String to store the received data in.
 

Additional Inherited Members

- Public Types inherited from Online::Request
enum  RequestType { RT_QUIT = 1 }
 

Detailed Description

A http request.

Constructor & Destructor Documentation

◆ HTTPRequest() [1/2]

Online::HTTPRequest::HTTPRequest ( int  priority = 1)

Creates a HTTP(S) request that will have a raw string as result.

(Can of course be used if the result doesn't matter.)

Parameters
priorityby what priority should the RequestManager take care of this request.

◆ HTTPRequest() [2/2]

Online::HTTPRequest::HTTPRequest ( const std::string &  filename,
int  priority = 1 
)

This constructor configures this request to save the data in a file.

Parameters
filenameName of the file to save the data to.
priorityby what priority should the RequestManager take care of this request.

Member Function Documentation

◆ getData()

const std::string& Online::HTTPRequest::getData ( ) const
inline

Returns the downloaded string.

Precondition
request has to be done
Returns
get the result string from the request reply

◆ operation()

void Online::HTTPRequest::operation ( )
protectedvirtual

The actual operation to be executed.

Empty as default, which allows to create a 'quit' request without any additional code.

Reimplemented from Online::Request.

◆ setAddonsURL()

void Online::HTTPRequest::setAddonsURL ( const std::string &  path)

A handy shortcut that appends the given path to the URL of the addons server.

Parameters
pathThe path to add to the server, without the trailing slash

◆ setApiURL()

void Online::HTTPRequest::setApiURL ( const std::string &  path,
const std::string &  action 
)

A handy shortcut that appends the given path to the URL of the mutiplayer server.

It also supports the old (version 1) api, where a 'action' parameter was sent to 'client-user.php'.

Parameters
pathThe path to add to the server.(see API::USER_*)
actionThe action to perform. eg: connect, pool

Member Data Documentation

◆ m_filename

std::string Online::HTTPRequest::m_filename
protected

Contains a filename if the data should be saved into a file instead of being kept in memory.

Otherwise this is "".

◆ m_progress

std::atomic<float> Online::HTTPRequest::m_progress
private

The progress indicator.

0 until it is started and the first packet is downloaded. Guaranteed to be <1 while the download is in progress, it will be set to either -1 (error) or 1 (everything ok) at the end.


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