MHEG  17.9.0
 All Data Structures Files Functions Variables Typedefs Enumerations Macros Pages
Enumerations | Functions
http_platform.h File Reference

Manages the interface between HTTP component and platform. More...

#include <techtype.h>
#include <httptype.h>

Go to the source code of this file.

Enumerations

enum  E_HttpRequestType { HTTP_REQUEST_GET, HTTP_REQUEST_HEAD, HTTP_REQUEST_POST, HTTP_REQUEST_STREAM }
 

Functions

E_HttpErr HP_Initialise (void)
 Initialise the HTTP interface. More...
 
E_HttpErr HP_SetUserAgent (U8BIT *user_agent)
 Set user agent for HTTP client. More...
 
E_HttpErr HP_SetTimeout (U16BIT timeout)
 Set timeout (in seconds) for HTTP requests. The timeout applies to connections (i.e. the time it takes to connect to the server) as well as response time (i.e the time it takes to download the content). Between sending the request and receiving the first byte of the the response there is no timeout. More...
 
E_HttpErr HP_CreateRequest (U8BIT *url, E_HttpRequestType type, void **handle)
 Create an HTTP request. The URL is provided, and is guaranteed to be either "http://..." or "https://..." The request type is also provided. Streaming request is the same as a GET request, except that a "Range:" header is also allowed for it. More...
 
E_HttpErr HP_StartRequest (void *handle)
 Start an HTTP request. More...
 
E_HttpErr HP_ResumeRequest (void *handle)
 Resume an HTTP request. More...
 
E_HttpErr HP_StopRequest (void *handle)
 Stop an HTTP request. More...
 
E_HttpErr HP_DestroyRequest (void *handle)
 Destroy an HTTP request. More...
 
E_HttpErr HP_SetUserData (void *handle, void *userdata)
 Set user data associated with an HTTP request. More...
 
E_HttpErr HP_AddHeader (void *handle, U8BIT *header)
 Add HTTP header to HTTP request. More...
 
E_HttpErr HP_SetPostData (void *handle, U8BIT *postdata)
 Set POST data for an HTTP request. More...
 
E_HttpErr HP_SetRange (void *handle, U8BIT *range)
 Set "Range:" header for an HTTP request. More...
 
E_HttpErr HP_GetRedirectUrl (void *handle, U8BIT **url)
 Get redirection URL for HTTP request. More...
 
E_HttpErr HP_AddTlsCertificate (U8BIT *cert, U32BIT len)
 Add a certificate for TLS connections. More...
 
E_HttpErr HP_ClearTlsCertificates (void)
 Clear TLS certificates. More...
 
E_HttpErr HP_WaitForAction (void)
 Wait until there is some activity on one (or more) of the HTTP requests, or until some other condition is met. The exact details depend on the HTTP client. More...
 
E_HttpErr HP_Process (U16BIT *active_count)
 Process HTTP requests. This may cause request callbacks to be called. More...
 
void HP_HeaderCallback (void *userdata, S32BIT response_code, U8BIT *data, U32BIT len)
 Callback for HTTP header data. This function is called by the HTTP client. More...
 
BOOLEAN HP_ContentCallback (void *userdata, U8BIT *data, U32BIT len)
 Callback for HTTP content data. This function is called by the HTTP client. The callback must return TRUE if the content has been processed. If FALSE is returned, the HTTP client pauses the request and does not deliver any more data until the request is resumed. More...
 
void HP_EndCallback (void *userdata, E_HttpStatus status)
 Callback for HTTP request end. This function is called by the HTTP client. More...
 
E_HttpErr HP_Terminate (void)
 Terminate the HTTP interface. More...
 

Detailed Description

Manages the interface between HTTP component and platform.

Date
22/02/2010
Author
Omri Barel

Function Documentation

E_HttpErr HP_AddHeader ( void *  handle,
U8BIT *  header 
)

Add HTTP header to HTTP request.

Parameters
handleThe handle of the request
headerHeader to add (null-terminated string)
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_AddTlsCertificate ( U8BIT *  cert,
U32BIT  len 
)

Add a certificate for TLS connections.

Parameters
certCertificate data (X.509 DER format)
lenCertificate length
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_ClearTlsCertificates ( void  )

Clear TLS certificates.

Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered
BOOLEAN HP_ContentCallback ( void *  userdata,
U8BIT *  data,
U32BIT  len 
)

Callback for HTTP content data. This function is called by the HTTP client. The callback must return TRUE if the content has been processed. If FALSE is returned, the HTTP client pauses the request and does not deliver any more data until the request is resumed.

Parameters
userdataUser data for the HTTP request
dataContent block data
lenContent block length
Returns
TRUE if the content has been processed, FALSE otherwise
E_HttpErr HP_CreateRequest ( U8BIT *  url,
E_HttpRequestType  type,
void **  handle 
)

Create an HTTP request. The URL is provided, and is guaranteed to be either "http://..." or "https://..." The request type is also provided. Streaming request is the same as a GET request, except that a "Range:" header is also allowed for it.

Parameters
urlURL for request
typeRequest type
handleNew request handle, or NULL if it cannot be created
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_DestroyRequest ( void *  handle)

Destroy an HTTP request.

Parameters
handleThe handle of the request to destroy
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
void HP_EndCallback ( void *  userdata,
E_HttpStatus  status 
)

Callback for HTTP request end. This function is called by the HTTP client.

Parameters
userdataUser data for the HTTP request
statusHTTP request status
Returns
Nothing
E_HttpErr HP_GetRedirectUrl ( void *  handle,
U8BIT **  url 
)

Get redirection URL for HTTP request.

Parameters
handleThe handle of the HTTP request
urlRedirection URL
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
void HP_HeaderCallback ( void *  userdata,
S32BIT  response_code,
U8BIT *  data,
U32BIT  len 
)

Callback for HTTP header data. This function is called by the HTTP client.

Parameters
userdataUser data for the HTTP request
response_codeHTTP response code
dataHTTP header data
lenHTTP header length
Returns
Nothing
E_HttpErr HP_Initialise ( void  )

Initialise the HTTP interface.

Returns
HTTP_OK if the interface is initialised HTTP_ERR_INTERNAL if the interface cannot be initialised
E_HttpErr HP_Process ( U16BIT *  active_count)

Process HTTP requests. This may cause request callbacks to be called.

Parameters
active_countNumber of active requests
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_ResumeRequest ( void *  handle)

Resume an HTTP request.

Parameters
handleThe handle of the request to resume
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_SetPostData ( void *  handle,
U8BIT *  postdata 
)

Set POST data for an HTTP request.

Parameters
handleThe handle of the request
postdataNull-terminated string containing the POST data
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_SetRange ( void *  handle,
U8BIT *  range 
)

Set "Range:" header for an HTTP request.

Parameters
handleThe handle of the request
rangeNull-terminated string containing the range details
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_SetTimeout ( U16BIT  timeout)

Set timeout (in seconds) for HTTP requests. The timeout applies to connections (i.e. the time it takes to connect to the server) as well as response time (i.e the time it takes to download the content). Between sending the request and receiving the first byte of the the response there is no timeout.

Parameters
timeoutRequest timeout in seconds
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_SetUserAgent ( U8BIT *  user_agent)

Set user agent for HTTP client.

Parameters
user_agentUser agent string
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
Parameters
user_agentUser agent string
Returns
HTTP_OK if the interface is initialised HTTP_ERR_INTERNAL if the interface cannot be initialised
E_HttpErr HP_SetUserData ( void *  handle,
void *  userdata 
)

Set user data associated with an HTTP request.

Parameters
handleThe handle of the request
userdataUser data to be associated with the request
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_StartRequest ( void *  handle)

Start an HTTP request.

Parameters
handleThe handle of the request to start
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_StopRequest ( void *  handle)

Stop an HTTP request.

Parameters
handleThe handle of the request to stop
Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters
E_HttpErr HP_Terminate ( void  )

Terminate the HTTP interface.

Returns
HTTP_OK if the interface is terminated HTTP_ERR_INTERNAL if the interface cannot be terminated
E_HttpErr HP_WaitForAction ( void  )

Wait until there is some activity on one (or more) of the HTTP requests, or until some other condition is met. The exact details depend on the HTTP client.

Returns
HTTP_OK if the function was successful HTTP_ERR_INTERNAL if an internal error was encountered HTTP_ERR_BAD_PARAMETER if the function received bad parameters