29#ifndef CORE_MQTT_STATE_H
30#define CORE_MQTT_STATE_H
45#define MQTT_STATE_CURSOR_INITIALIZER ( ( size_t ) 0 )
59typedef enum MQTTStateOperation
63} MQTTStateOperation_t;
124 MQTTStateOperation_t opType,
163 MQTTStateOperation_t opType,
190 MQTTStateOperation_t opType,
User-facing functions of the MQTT 3.1.1 library.
MQTTStatus_t MQTT_UpdateStateAck(const MQTTContext_t *pMqttContext, uint16_t packetId, MQTTPubAckType_t packetType, MQTTStateOperation_t opType, MQTTPublishState_t *pNewState)
Update the state record for an ACKed publish.
Definition: core_mqtt_state.c:1007
MQTTPublishState_t MQTT_CalculateStateAck(MQTTPubAckType_t packetType, MQTTStateOperation_t opType, MQTTQoS_t qos)
Calculate the state from a PUBACK, PUBREC, PUBREL, or PUBCOMP.
Definition: core_mqtt_state.c:659
MQTTStatus_t MQTT_ReserveState(const MQTTContext_t *pMqttContext, uint16_t packetId, MQTTQoS_t qos)
Reserve an entry for an outgoing QoS 1 or Qos 2 publish.
Definition: core_mqtt_state.c:827
const char * MQTT_State_strerror(MQTTPublishState_t state)
State to string conversion for state engine.
Definition: core_mqtt_state.c:1155
MQTTPublishState_t MQTT_CalculateStatePublish(MQTTStateOperation_t opType, MQTTQoS_t qos)
Calculate the new state for a publish from its qos and operation type.
Definition: core_mqtt_state.c:856
MQTTStatus_t MQTT_UpdateStatePublish(const MQTTContext_t *pMqttContext, uint16_t packetId, MQTTStateOperation_t opType, MQTTQoS_t qos, MQTTPublishState_t *pNewState)
Update the state record for a PUBLISH packet.
Definition: core_mqtt_state.c:885
uint16_t MQTT_PubrelToResend(const MQTTContext_t *pMqttContext, MQTTStateCursor_t *pCursor, MQTTPublishState_t *pState)
Get the packet ID of next pending PUBREL ack to be resent.
Definition: core_mqtt_state.c:1089
MQTTStatus_t MQTT_RemoveStateRecord(const MQTTContext_t *pMqttContext, uint16_t packetId)
Remove the state record for a PUBLISH packet.
Definition: core_mqtt_state.c:959
uint16_t MQTT_PublishToResend(const MQTTContext_t *pMqttContext, MQTTStateCursor_t *pCursor)
Get the packet ID of next pending publish to be resent.
Definition: core_mqtt_state.c:1125
size_t MQTTStateCursor_t
Cursor for iterating through state records.
Definition: core_mqtt_state.h:51
MQTTPublishState_t
The state of QoS 1 or QoS 2 MQTT publishes, used in the state engine.
Definition: core_mqtt.h:108
MQTTPubAckType_t
Packet types used in acknowledging QoS 1 or QoS 2 publishes.
Definition: core_mqtt.h:127
MQTTStatus_t
Return codes from MQTT functions.
Definition: core_mqtt_serializer.h:99
MQTTQoS_t
MQTT Quality of Service values.
Definition: core_mqtt_serializer.h:121
A struct representing an MQTT connection.
Definition: core_mqtt.h:162