MHEG5  15.3.0
source/http/inc/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.
E_HttpErr HP_SetUserAgent (U8BIT *user_agent)
 Set user agent for HTTP client.
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.
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.
E_HttpErr HP_StartRequest (void *handle)
 Start an HTTP request.
E_HttpErr HP_ResumeRequest (void *handle)
 Resume an HTTP request.
E_HttpErr HP_StopRequest (void *handle)
 Stop an HTTP request.
E_HttpErr HP_DestroyRequest (void *handle)
 Destroy an HTTP request.
E_HttpErr HP_SetUserData (void *handle, void *userdata)
 Set user data associated with an HTTP request.
E_HttpErr HP_AddHeader (void *handle, U8BIT *header)
 Add HTTP header to HTTP request.
E_HttpErr HP_SetPostData (void *handle, U8BIT *postdata)
 Set POST data for an HTTP request.
E_HttpErr HP_SetRange (void *handle, U8BIT *range)
 Set "Range:" header for an HTTP request.
E_HttpErr HP_GetRedirectUrl (void *handle, U8BIT **url)
 Get redirection URL for HTTP request.
E_HttpErr HP_AddTlsCertificate (U8BIT *cert, U32BIT len)
 Add a certificate for TLS connections.
E_HttpErr HP_ClearTlsCertificates (void)
 Clear TLS certificates.
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.
E_HttpErr HP_Process (U16BIT *active_count)
 Process HTTP requests. This may cause request callbacks to be called.
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.
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.
void HP_EndCallback (void *userdata, E_HttpStatus status)
 Callback for HTTP request end. This function is called by the HTTP client.
E_HttpErr HP_Terminate (void)
 Terminate the HTTP interface.

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
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
 All Data Structures Files Functions Variables Typedefs Defines