coreHTTP v3.0.0
HTTP/1.1 Client Library
Callback Types

Callback function pointer types of the HTTP Client library. More...

Typedefs

typedef uint32_t(* HTTPClient_GetCurrentTimeFunc_t) (void)
 Application provided function to query the current time in milliseconds. More...
 
typedef int32_t(* TransportRecv_t) (NetworkContext_t *pNetworkContext, void *pBuffer, size_t bytesToRecv)
 Transport interface for receiving data on the network. More...
 
typedef int32_t(* TransportSend_t) (NetworkContext_t *pNetworkContext, const void *pBuffer, size_t bytesToSend)
 Transport interface for sending data over the network. More...
 
typedef int32_t(* TransportWritev_t) (NetworkContext_t *pNetworkContext, TransportOutVector_t *pIoVec, size_t ioVecCount)
 Transport interface function for "vectored" / scatter-gather based writes. This function is expected to iterate over the list of vectors pIoVec having ioVecCount entries containing portions of one MQTT message at a maximum. If the proper functionality is available, then the data in the list should be copied to the underlying TCP buffer before flushing the buffer. Implementing it in this fashion will lead to sending of fewer TCP packets for all the values in the list. More...
 

Detailed Description

Callback function pointer types of the HTTP Client library.

Typedef Documentation

◆ HTTPClient_GetCurrentTimeFunc_t

typedef uint32_t(* HTTPClient_GetCurrentTimeFunc_t) (void)

Application provided function to query the current time in milliseconds.

Returns
The current time in milliseconds.

◆ TransportRecv_t

typedef int32_t(* TransportRecv_t) (NetworkContext_t *pNetworkContext, void *pBuffer, size_t bytesToRecv)

Transport interface for receiving data on the network.

Note
It is RECOMMENDED that the transport receive implementation does NOT block when requested to read a single byte. A single byte read request can be made by the caller to check whether there is a new frame available on the network for reading. However, the receive implementation MAY block for a timeout period when it is requested to read more than 1 byte. This is because once the caller is aware that a new frame is available to read on the network, then the likelihood of reading more than one byte over the network becomes high.
Parameters
[in]pNetworkContextImplementation-defined network context.
[in]pBufferBuffer to receive the data into.
[in]bytesToRecvNumber of bytes requested from the network.
Returns
The number of bytes received or a negative value to indicate error.
Note
If no data is available on the network to read and no error has occurred, zero MUST be the return value. A zero return value SHOULD represent that the read operation can be retried by calling the API function. Zero MUST NOT be returned if a network disconnection has occurred.

◆ TransportSend_t

typedef int32_t(* TransportSend_t) (NetworkContext_t *pNetworkContext, const void *pBuffer, size_t bytesToSend)

Transport interface for sending data over the network.

Parameters
[in]pNetworkContextImplementation-defined network context.
[in]pBufferBuffer containing the bytes to send over the network stack.
[in]bytesToSendNumber of bytes to send over the network.
Returns
The number of bytes sent or a negative value to indicate error.
Note
If no data is transmitted over the network due to a full TX buffer and no network error has occurred, this MUST return zero as the return value. A zero return value SHOULD represent that the send operation can be retried by calling the API function. Zero MUST NOT be returned if a network disconnection has occurred.

◆ TransportWritev_t

typedef int32_t(* TransportWritev_t) (NetworkContext_t *pNetworkContext, TransportOutVector_t *pIoVec, size_t ioVecCount)

Transport interface function for "vectored" / scatter-gather based writes. This function is expected to iterate over the list of vectors pIoVec having ioVecCount entries containing portions of one MQTT message at a maximum. If the proper functionality is available, then the data in the list should be copied to the underlying TCP buffer before flushing the buffer. Implementing it in this fashion will lead to sending of fewer TCP packets for all the values in the list.

Note
If the proper write functionality is not present for a given device/IP-stack, then there is no strict requirement to implement write. Only the send and recv interfaces must be defined for the application to work properly.
Parameters
[in]pNetworkContextImplementation-defined network context.
[in]pIoVecAn array of TransportIoVector_t structs.
[in]ioVecCountNumber of TransportIoVector_t in pIoVec.
Returns
The number of bytes written or a negative value to indicate error.
Note
If no data is written to the buffer due to the buffer being full this MUST return zero as the return value. A zero return value SHOULD represent that the write operation can be retried by calling the API function. Zero MUST NOT be returned if a network disconnection has occurred.