AWS IoT C++ SDK
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
awsiotsdk::mqtt::NetworkReadActionRunner Class Reference

Define a class for NetworkReadActionRunner. More...

#include <NetworkRead.hpp>

Inheritance diagram for awsiotsdk::mqtt::NetworkReadActionRunner:
awsiotsdk::Action

Public Member Functions

 NetworkReadActionRunner (std::shared_ptr< ClientState > p_client_state)
 Constructor. More...
 
ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)
 Perform Network Read Action in Async mode. More...
 
- Public Member Functions inherited from awsiotsdk::Action
ActionType GetActionType ()
 Get Type of this Action. More...
 
util::String GetActionInfo ()
 Get information/description about the current action. More...
 
void SetParentThreadSync (std::shared_ptr< std::atomic_bool > p_thread_continue)
 Sets the parent thread sync variable. More...
 
virtual ResponseCode PerformAction (std::shared_ptr< NetworkConnection > p_network_connection, std::shared_ptr< ActionData > p_action_data)=0
 Virtual base function for Performing Action. More...
 
 Action (const Action &)=delete
 
 Action (Action &&)=delete
 
Actionoperator= (const Action &) &=delete
 
Actionoperator= (Action &&) &=delete
 
 Action (ActionType action_type, util::String action_info_string)
 Action Constructor. More...
 

Static Public Member Functions

static std::unique_ptr< ActionCreate (std::shared_ptr< ActionState > p_action_state)
 Factory Create method. More...
 

Protected Member Functions

ResponseCode DecodeRemainingLength (size_t &rem_len)
 Decode Remaining length from MQTT packet. More...
 
ResponseCode ReadPacketFromNetwork (unsigned char &fixed_header_byte, util::Vector< unsigned char > &read_buf)
 Read MQTT Packet from buffer. More...
 
ResponseCode HandleConnack (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Connack packet. More...
 
ResponseCode HandlePublish (const util::Vector< unsigned char > &read_buf, bool is_duplicate, bool is_retained, QoS qos)
 Handle MQTT Publish packet. More...
 
ResponseCode HandlePuback (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Puback packet. More...
 
ResponseCode HandleSuback (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Suback packet. More...
 
ResponseCode HandleUnsuback (const util::Vector< unsigned char > &read_buf)
 Handle MQTT Unsuback packet. More...
 
- Protected Member Functions inherited from awsiotsdk::Action
ResponseCode ReadFromNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, util::Vector< unsigned char > &read_buf, size_t bytes_to_read)
 Generic Network Read function for all actions. More...
 
ResponseCode WriteToNetworkBuffer (std::shared_ptr< NetworkConnection > p_network_connection, const util::String &write_buf)
 Generic Network Write function for all actions. More...
 

Protected Attributes

std::shared_ptr< ClientStatep_client_state_
 Shared Client State instance.
 
std::shared_ptr< NetworkConnectionp_network_connection_
 Shared Network Connection instance.
 
std::atomic_bool is_waiting_for_connack_
 Is this waiting for connack?
 
- Protected Attributes inherited from awsiotsdk::Action
ActionType action_type_
 Type of the action.
 
util::String action_info_string_
 Info string.
 
std::shared_ptr< std::atomic_bool > p_thread_continue_
 Shared atomic variable used for sync when action is run in separate thread.
 

Additional Inherited Members

- Public Types inherited from awsiotsdk::Action
typedef std::function< std::unique_ptr< Action >(std::shared_ptr< ActionState > p_action_state)> CreateHandlerPtr
 

Detailed Description

This class defines an Asynchronous action for performing a MQTT Read operation Can run both as a one time operation as well as in a separate thread

Constructor & Destructor Documentation

◆ NetworkReadActionRunner()

awsiotsdk::mqtt::NetworkReadActionRunner::NetworkReadActionRunner ( std::shared_ptr< ClientState p_client_state)
Warning
This constructor can throw exceptions, it is recommended to use Factory create method Constructor is kept public to not restrict usage possibilities (eg. make_shared)
Parameters
p_client_state- Shared Client State instance

Member Function Documentation

◆ Create()

std::unique_ptr< Action > awsiotsdk::mqtt::NetworkReadActionRunner::Create ( std::shared_ptr< ActionState p_action_state)
static
Parameters
p_client_state- Shared Client State instance
Returns
nullptr on error, unique_ptr pointing to a created NetworkReadActionRunner instance if successful

◆ DecodeRemainingLength()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::DecodeRemainingLength ( size_t &  rem_len)
protected
Parameters
rem_lenreference in which to store decoded length
Returns
ResponseCode indicating status of request

◆ HandleConnack()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandleConnack ( const util::Vector< unsigned char > &  read_buf)
protected
Parameters
read_bufReference to string buffer containing the MQTT Connack payload
Returns
ResponseCode indicating status of request

◆ HandlePuback()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandlePuback ( const util::Vector< unsigned char > &  read_buf)
protected
Parameters
read_bufReference to string buffer containing the MQTT Puback payload
Returns
ResponseCode indicating status of request

◆ HandlePublish()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandlePublish ( const util::Vector< unsigned char > &  read_buf,
bool  is_duplicate,
bool  is_retained,
QoS  qos 
)
protected
Parameters
read_bufReference to string buffer containing the MQTT Publish payload
is_duplicateMQTT Is Duplicate message flag
is_retainedMQTT Is retained flag
qosQoS of received Publish message
Returns
ResponseCode indicating status of request

◆ HandleSuback()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandleSuback ( const util::Vector< unsigned char > &  read_buf)
protected
Parameters
read_bufReference to string buffer containing the MQTT Suback payload
Returns
ResponseCode indicating status of request

◆ HandleUnsuback()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::HandleUnsuback ( const util::Vector< unsigned char > &  read_buf)
protected
Parameters
read_bufReference to string buffer containing the MQTT Unsuback payload
Returns
ResponseCode indicating status of request

◆ PerformAction()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::PerformAction ( std::shared_ptr< NetworkConnection p_network_connection,
std::shared_ptr< ActionData p_action_data 
)
virtual

Performs a Network read to see if there is any incoming MQTT packet in the provided Network Connection's Read buffer. Can be run as a one time operation or as a Client Core thread.

Parameters
p_network_connection- Network connection instance to use for performing this action
p_action_data- Action data specific to this execution of the Action
Returns
- ResponseCode indicating status of the operation

Implements awsiotsdk::Action.

◆ ReadPacketFromNetwork()

ResponseCode awsiotsdk::mqtt::NetworkReadActionRunner::ReadPacketFromNetwork ( unsigned char &  fixed_header_byte,
util::Vector< unsigned char > &  read_buf 
)
protected
Parameters
fixed_header_byteReference to string in which Fixed header byte should be stored
read_bufReference to string in which the rest of the packet should be stored
Returns
ResponseCode indicating status of request