32#ifndef CORE_MQTT_SERIALIZER_H
33#define CORE_MQTT_SERIALIZER_H
53#define MQTT_PACKET_TYPE_CONNECT ( ( uint8_t ) 0x10U )
54#define MQTT_PACKET_TYPE_CONNACK ( ( uint8_t ) 0x20U )
55#define MQTT_PACKET_TYPE_PUBLISH ( ( uint8_t ) 0x30U )
56#define MQTT_PACKET_TYPE_PUBACK ( ( uint8_t ) 0x40U )
57#define MQTT_PACKET_TYPE_PUBREC ( ( uint8_t ) 0x50U )
58#define MQTT_PACKET_TYPE_PUBREL ( ( uint8_t ) 0x62U )
59#define MQTT_PACKET_TYPE_PUBCOMP ( ( uint8_t ) 0x70U )
60#define MQTT_PACKET_TYPE_SUBSCRIBE ( ( uint8_t ) 0x82U )
61#define MQTT_PACKET_TYPE_SUBACK ( ( uint8_t ) 0x90U )
62#define MQTT_PACKET_TYPE_UNSUBSCRIBE ( ( uint8_t ) 0xA2U )
63#define MQTT_PACKET_TYPE_UNSUBACK ( ( uint8_t ) 0xB0U )
64#define MQTT_PACKET_TYPE_PINGREQ ( ( uint8_t ) 0xC0U )
65#define MQTT_PACKET_TYPE_PINGRESP ( ( uint8_t ) 0xD0U )
66#define MQTT_PACKET_TYPE_DISCONNECT ( ( uint8_t ) 0xE0U )
67#define MQTT_PACKET_TYPE_AUTH ( ( uint8_t ) 0xF0U )
74#define MQTT_PUBLISH_ACK_PACKET_SIZE ( 4UL )
76#define MQTT_SUBSCRIBE_QOS1 ( 0U )
77#define MQTT_SUBSCRIBE_QOS2 ( 1U )
78#define MQTT_SUBSCRIBE_NO_LOCAL ( 2U )
79#define MQTT_SUBSCRIBE_RETAIN_AS_PUBLISHED ( 3U )
80#define MQTT_SUBSCRIBE_RETAIN_HANDLING1 ( 4U )
81#define MQTT_SUBSCRIBE_RETAIN_HANDLING2 ( 5U )
88#define MQTT_SESSION_EXPIRY_ID ( 0x11U )
93#define MQTT_RECEIVE_MAX_ID ( 0x21U )
98#define MQTT_MAX_PACKET_SIZE_ID ( 0x27U )
103#define MQTT_TOPIC_ALIAS_MAX_ID ( 0x22U )
108#define MQTT_REQUEST_RESPONSE_ID ( 0x19U )
113#define MQTT_REQUEST_PROBLEM_ID ( 0x17U )
118#define MQTT_USER_PROPERTY_ID ( 0x26U )
123#define MQTT_AUTH_METHOD_ID ( 0x15U )
128#define MQTT_AUTH_DATA_ID ( 0x16U )
136#define MQTT_WILL_DELAY_ID ( 0x18U )
141#define MQTT_PAYLOAD_FORMAT_ID ( 0x01U )
146#define MQTT_MSG_EXPIRY_ID ( 0x02U )
151#define MQTT_CONTENT_TYPE_ID ( 0x03U )
156#define MQTT_RESPONSE_TOPIC_ID ( 0x08U )
161#define MQTT_CORRELATION_DATA_ID ( 0x09U )
166#define MQTT_TOPIC_ALIAS_ID ( 0x23U )
174#define MQTT_MAX_QOS_ID ( 0x24U )
179#define MQTT_RETAIN_AVAILABLE_ID ( 0x25U )
184#define MQTT_ASSIGNED_CLIENT_ID ( 0x12U )
189#define MQTT_REASON_STRING_ID ( 0x1FU )
194#define MQTT_WILDCARD_ID ( 0x28U )
199#define MQTT_SUB_AVAILABLE_ID ( 0x29U )
204#define MQTT_SHARED_SUB_ID ( 0x2AU )
209#define MQTT_SERVER_KEEP_ALIVE_ID ( 0x13U )
215#define MQTT_RESPONSE_INFO_ID ( 0x1AU )
220#define MQTT_SERVER_REF_ID ( 0x1CU )
225#define MQTT_SUBSCRIPTION_ID_ID ( 0x0BU )
228struct MQTTFixedBuffer;
229struct MQTTConnectInfo;
230struct MQTTSubscribeInfo;
231struct MQTTPublishInfo;
232struct MQTTPacketInfo;
238typedef enum MQTTStatus
283typedef struct MQTTFixedBuffer
293typedef struct MQTTConnectInfo
340typedef enum MQTTRetainHandling{
350typedef struct MQTTSubscribeInfo
394typedef struct MQTTPublishInfo
442typedef struct MQTTPacketInfo
469typedef struct MQTTPropBuilder
481typedef struct MQTTReasonCodeInfo
495typedef struct MQTTConnectProperties
582typedef enum MQTTSuccessFailReasonCode
701typedef struct MQTTUserProperty
725typedef enum MQTTSubscriptionType
796 uint32_t * pRemainingLength,
797 uint32_t * pPacketSize );
867 uint32_t remainingLength,
939 size_t subscriptionCount,
941 uint32_t * pRemainingLength,
942 uint32_t * pPacketSize,
943 uint32_t maxPacketSize );
1013 size_t subscriptionCount,
1016 uint32_t remainingLength,
1078 size_t subscriptionCount,
1080 uint32_t * pRemainingLength,
1081 uint32_t * pPacketSize,
1082 uint32_t maxPacketSize );
1161 size_t subscriptionCount,
1164 uint32_t remainingLength,
1230 uint32_t * pRemainingLength,
1231 uint32_t * pPacketSize,
1232 uint32_t maxPacketSize );
1305 uint32_t remainingLength,
1324 uint32_t remainingLength,
1326 size_t * headerSize );
1410 uint32_t remainingLength,
1412 size_t * pHeaderSize );
1508 uint32_t * pRemainingLength,
1509 uint32_t * pPacketSize,
1510 uint32_t maxPacketSize,
1571 uint32_t remainingLength,
1713 uint16_t * pPacketId,
1716 uint32_t maxPacketSize,
1717 uint16_t topicAliasMax );
1766 uint16_t * pPacketId,
1786 bool * pSessionPresent,
1877 const size_t * pIndex,
1956 bool * isRequestProblemInfoSet,
1957 uint32_t * pPacketMaxSizeValue );
2002 uint32_t subscriptionId,
2003 const uint8_t * pOptionalMqttPacketType );
2025 const uint8_t * pOptionalMqttPacketType );
2045 uint32_t sessionExpiry,
2046 const uint8_t * pOptionalMqttPacketType );
2068 uint16_t receiveMax,
2069 const uint8_t * pOptionalMqttPacketType );
2090 uint32_t maxPacketSize,
2091 const uint8_t * pOptionalMqttPacketType );
2112 uint16_t topicAliasMax,
2113 const uint8_t * pOptionalMqttPacketType );
2134 bool requestResponseInfo,
2135 const uint8_t * pOptionalMqttPacketType );
2156 bool requestProblemInfo,
2157 const uint8_t * pOptionalMqttPacketType );
2179 const char * authMethod,
2180 size_t authMethodLength,
2181 const uint8_t * pOptionalMqttPacketType );
2203 const char * authData,
2204 size_t authDataLength,
2205 const uint8_t * pOptionalMqttPacketType );
2227 const uint8_t * pOptionalMqttPacketType );
2248 uint32_t messageExpiry,
2249 const uint8_t * pOptionalMqttPacketType );
2270 uint32_t willDelayInterval,
2271 const uint8_t * pOptionalMqttPacketType );
2292 uint16_t topicAlias,
2293 const uint8_t * pOptionalMqttPacketType );
2315 const char * responseTopic,
2316 size_t responseTopicLength,
2317 const uint8_t * pOptionalMqttPacketType );
2338 const void * pCorrelationData,
2339 size_t correlationLength,
2340 const uint8_t * pOptionalMqttPacketType );
2362 const char * contentType,
2363 size_t contentTypeLength,
2364 const uint8_t * pOptionalMqttPacketType );
2386 const char * pReasonString,
2387 size_t reasonStringLength,
2388 const uint8_t * pOptionalMqttPacketType );
2469 const size_t * currentIndex,
2470 uint8_t * property );
2539 size_t * currentIndex );
2553 size_t * currentIndex,
2569 size_t * currentIndex,
2570 uint32_t * pSessionExpiry );
2585 size_t * currentIndex,
2586 uint16_t * pReceiveMax );
2601 size_t * currentIndex,
2602 uint8_t * pMaxQos );
2617 size_t * currentIndex,
2618 uint8_t * pRetainAvailable );
2633 size_t * currentIndex,
2634 uint32_t * pMaxPacketSize );
2650 size_t * currentIndex,
2651 const char ** pClientId,
2652 size_t * pClientIdLength );
2667 size_t * currentIndex,
2668 uint16_t * pTopicAliasMax );
2684 size_t * currentIndex,
2685 const char ** pReasonString,
2686 size_t * pReasonStringLength );
2701 size_t * currentIndex,
2702 uint8_t * pWildcardAvailable );
2717 size_t * currentIndex,
2718 uint8_t * pSubsIdAvailable );
2733 size_t * currentIndex,
2734 uint8_t * pSharedSubAvailable );
2749 size_t * currentIndex,
2750 uint16_t * pServerKeepAlive );
2766 size_t * currentIndex,
2767 const char ** pResponseInfo,
2768 size_t * pResponseInfoLength );
2784 size_t * currentIndex,
2785 const char ** pServerRef,
2786 size_t * pServerRefLength );
2802 size_t * currentIndex,
2803 const char ** pAuthMethod,
2804 size_t * pAuthMethodLen );
2820 size_t * currentIndex,
2821 const char ** pAuthData,
2822 size_t * pAuthDataLen );
2837 size_t * currentIndex,
2838 uint8_t * pPayloadFormat );
2853 size_t * currentIndex,
2854 uint32_t * pMessageExpiry );
2869 size_t * currentIndex,
2870 uint16_t * pTopicAlias );
2886 size_t * currentIndex,
2887 const char ** pResponseTopic,
2888 size_t * pResponseTopicLength );
2904 size_t * currentIndex,
2905 const char ** pCorrelationData,
2906 size_t * pCorrelationDataLength );
2921 size_t * currentIndex,
2922 uint32_t * pSubscriptionId );
2943 size_t * currentIndex,
2944 const char ** pContentType,
2945 size_t * pContentTypeLength );
2965 uint16_t * topicAlias );
3007 uint8_t retainAvailable,
3009 uint16_t topicAlias,
3010 uint32_t maxPacketSize );
3076 uint32_t * pPacketSize,
3077 uint32_t maxPacketSize,
3078 size_t ackPropertyLength );
3137 uint32_t maxPacketSize,
MQTTStatus_t MQTTPropAdd_ResponseTopic(MQTTPropBuilder_t *pPropertyBuilder, const char *responseTopic, size_t responseTopicLength, const uint8_t *pOptionalMqttPacketType)
Adds Response Topic property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1053
MQTTStatus_t MQTTPropAdd_TopicAlias(MQTTPropBuilder_t *pPropertyBuilder, uint16_t topicAlias, const uint8_t *pOptionalMqttPacketType)
Adds Topic Alias property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1028
MQTTStatus_t MQTT_SerializeConnect(const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, const MQTTPropBuilder_t *pConnectProperties, const MQTTPropBuilder_t *pWillProperties, uint32_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT CONNECT packet in the given fixed buffer pFixedBuffer.
Definition: core_mqtt_serializer.c:3428
MQTTStatus_t MQTTPropGet_SubsIdAvailable(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint8_t *pSubsIdAvailable)
Get Subscription Identifier Available property from property builder.
Definition: core_mqtt_prop_deserializer.c:706
MQTTStatus_t MQTTPropGet_AssignedClientId(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pClientId, size_t *pClientIdLength)
Get Assigned Client Identifier property from property builder.
Definition: core_mqtt_prop_deserializer.c:668
MQTTStatus_t MQTTPropAdd_RequestRespInfo(MQTTPropBuilder_t *pPropertyBuilder, bool requestResponseInfo, const uint8_t *pOptionalMqttPacketType)
Adds Request Response Information property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:881
MQTTStatus_t MQTTPropAdd_PayloadFormat(MQTTPropBuilder_t *pPropertyBuilder, bool payloadFormat, const uint8_t *pOptionalMqttPacketType)
Adds Payload Format Indicator property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:987
MQTTStatus_t MQTT_GetPublishPacketSize(const MQTTPublishInfo_t *pPublishInfo, const MQTTPropBuilder_t *pPublishProperties, uint32_t *pRemainingLength, uint32_t *pPacketSize, uint32_t maxPacketSize)
Get the packet size and remaining length of an MQTT PUBLISH packet.
Definition: core_mqtt_serializer.c:3889
MQTTStatus_t MQTTPropAdd_AuthMethod(MQTTPropBuilder_t *pPropertyBuilder, const char *authMethod, size_t authMethodLength, const uint8_t *pOptionalMqttPacketType)
Adds Authentication Method property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:911
MQTTStatus_t MQTT_ValidatePublishProperties(uint16_t serverTopicAliasMax, const MQTTPropBuilder_t *propBuilder, uint16_t *topicAlias)
Validates the properties of a PUBLISH packet.
Definition: core_mqtt_serializer.c:5553
MQTTStatus_t MQTTPropertyBuilder_Init(MQTTPropBuilder_t *pPropertyBuilder, uint8_t *buffer, size_t length)
Initialize the property builder.
Definition: core_mqtt_serializer.c:5012
MQTTStatus_t MQTT_ValidateSubscribeProperties(bool isSubscriptionIdAvailable, const MQTTPropBuilder_t *propBuilder)
Validates the properties of a SUBSCRIBE packet.
Definition: core_mqtt_serializer.c:5457
MQTTStatus_t MQTT_UpdateDuplicatePublishFlag(uint8_t *pHeader, bool set)
Update the duplicate publish flag within the given header of the publish packet.
Definition: core_mqtt_serializer.c:4892
MQTTStatus_t MQTTPropGet_ServerKeepAlive(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint16_t *pServerKeepAlive)
Get Server Keep Alive property from property builder.
Definition: core_mqtt_prop_deserializer.c:724
MQTTStatus_t MQTTPropAdd_MaxPacketSize(MQTTPropBuilder_t *pPropertyBuilder, uint32_t maxPacketSize, const uint8_t *pOptionalMqttPacketType)
Adds Maximum Packet Size property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:842
MQTTStatus_t MQTT_GetNextPropertyType(const MQTTPropBuilder_t *pPropertyBuilder, const size_t *currentIndex, uint8_t *property)
Get the property type at the current index in the property builder.
Definition: core_mqtt_prop_deserializer.c:386
MQTTStatus_t MQTTPropGet_RetainAvailable(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint8_t *pRetainAvailable)
Get Retain Available property from property builder.
Definition: core_mqtt_prop_deserializer.c:650
MQTTStatus_t MQTTPropGet_ResponseTopic(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pResponseTopic, size_t *pResponseTopicLength)
Get Response Topic property from property builder.
Definition: core_mqtt_prop_deserializer.c:800
MQTTStatus_t MQTTPropGet_ContentType(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pContentType, size_t *pContentTypeLength)
Get the Content Type property from the property builder.
Definition: core_mqtt_prop_deserializer.c:872
MQTTStatus_t MQTTPropGet_MaxPacketSize(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint32_t *pMaxPacketSize)
Get Maximum Packet Size property from property builder.
Definition: core_mqtt_prop_deserializer.c:659
MQTTStatus_t MQTTPropGet_MessageExpiryInterval(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint32_t *pMessageExpiry)
Get Message Expiry Interval property from property builder.
Definition: core_mqtt_prop_deserializer.c:782
MQTTStatus_t MQTT_GetSubscribePacketSize(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, const MQTTPropBuilder_t *pSubscribeProperties, uint32_t *pRemainingLength, uint32_t *pPacketSize, uint32_t maxPacketSize)
Get packet size and Remaining Length of an MQTT SUBSCRIBE packet.
Definition: core_mqtt_serializer.c:3510
MQTTStatus_t MQTT_DeserializePublish(const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, MQTTPublishInfo_t *pPublishInfo, MQTTPropBuilder_t *propBuffer, uint32_t maxPacketSize, uint16_t topicAliasMax)
Deserialize an MQTT PUBLISH packet.
Definition: core_mqtt_serializer.c:4593
MQTTStatus_t MQTTPropGet_AuthMethod(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pAuthMethod, size_t *pAuthMethodLen)
Get Authentication Method property from property builder.
Definition: core_mqtt_prop_deserializer.c:753
MQTTStatus_t MQTTPropGet_CorrelationData(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pCorrelationData, size_t *pCorrelationDataLength)
Get Correlation Data property from property builder.
Definition: core_mqtt_prop_deserializer.c:810
MQTTStatus_t MQTT_ValidateDisconnectProperties(uint32_t connectSessionExpiry, const MQTTPropBuilder_t *pPropertyBuilder)
Validates the properties specified for an MQTT DISCONNECT packet.
Definition: core_mqtt_serializer.c:5844
MQTTStatus_t MQTT_SkipNextProperty(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex)
Skip the next property in the property builder without extracting its value.
Definition: core_mqtt_prop_deserializer.c:448
MQTTStatus_t MQTTPropAdd_TopicAliasMax(MQTTPropBuilder_t *pPropertyBuilder, uint16_t topicAliasMax, const uint8_t *pOptionalMqttPacketType)
Adds Topic Alias Maximum property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:867
MQTTStatus_t MQTT_SerializePublishHeader(const MQTTPublishInfo_t *pPublishInfo, const MQTTPropBuilder_t *pPublishProperties, uint16_t packetId, uint32_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer, size_t *pHeaderSize)
Serialize an MQTT PUBLISH packet header in the given buffer.
Definition: core_mqtt_serializer.c:4054
MQTTStatus_t MQTT_SerializePublishHeaderWithoutTopic(const MQTTPublishInfo_t *pPublishInfo, uint32_t remainingLength, uint8_t *pBuffer, size_t *headerSize)
Serialize an MQTT PUBLISH packet header without the topic string in the given buffer....
Definition: core_mqtt_serializer.c:912
MQTTStatus_t MQTTPropAdd_ReasonString(MQTTPropBuilder_t *pPropertyBuilder, const char *pReasonString, size_t reasonStringLength, const uint8_t *pOptionalMqttPacketType)
Adds Reason String property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1152
MQTTStatus_t MQTTPropAdd_SessionExpiry(MQTTPropBuilder_t *pPropertyBuilder, uint32_t sessionExpiry, const uint8_t *pOptionalMqttPacketType)
Adds Session Expiry Interval property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:803
MQTTStatus_t MQTT_GetAckPacketSize(uint32_t *pRemainingLength, uint32_t *pPacketSize, uint32_t maxPacketSize, size_t ackPropertyLength)
Get the size of an outgoing PUBLISH ACK packet.
Definition: core_mqtt_serializer.c:5775
MQTTStatus_t MQTT_GetUnsubscribePacketSize(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, const MQTTPropBuilder_t *pUnsubscribeProperties, uint32_t *pRemainingLength, uint32_t *pPacketSize, uint32_t maxPacketSize)
Get packet size and Remaining Length of an MQTT UNSUBSCRIBE packet.
Definition: core_mqtt_serializer.c:3696
MQTTStatus_t MQTTPropAdd_SubscriptionId(MQTTPropBuilder_t *pPropertyBuilder, uint32_t subscriptionId, const uint8_t *pOptionalMqttPacketType)
Adds a Subscription Identifier property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:613
MQTTStatus_t MQTT_DeserializeAck(const MQTTPacketInfo_t *pIncomingPacket, uint16_t *pPacketId, MQTTReasonCodeInfo_t *pReasonCode, MQTTPropBuilder_t *pPropBuffer, const MQTTConnectionProperties_t *pConnectProperties)
Deserialize an MQTT PUBACK, PUBREC, PUBREL, PUBCOMP, SUBACK, UNSUBACK, or PINGRESP.
Definition: core_mqtt_serializer.c:4715
MQTTStatus_t MQTT_DeserializeDisconnect(const MQTTPacketInfo_t *pPacket, uint32_t maxPacketSize, MQTTReasonCodeInfo_t *pDisconnectInfo, MQTTPropBuilder_t *pPropBuffer)
Deserialize an MQTT Disconnect packet.
Definition: core_mqtt_serializer.c:5919
MQTTStatus_t MQTT_ValidateConnectProperties(const MQTTPropBuilder_t *pPropertyBuilder, bool *isRequestProblemInfoSet, uint32_t *pPacketMaxSizeValue)
Validate the properties in a CONNECT packet.
Definition: core_mqtt_serializer.c:5402
MQTTStatus_t MQTT_ValidateWillProperties(const MQTTPropBuilder_t *pPropertyBuilder)
Validates the properties specified for WILL Properties in the MQTT CONNECT packet.
Definition: core_mqtt_serializer.c:5049
MQTTStatus_t MQTTPropGet_TopicAlias(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint16_t *pTopicAlias)
Get Topic Alias property from property builder.
Definition: core_mqtt_prop_deserializer.c:791
MQTTStatus_t MQTTPropAdd_ReceiveMax(MQTTPropBuilder_t *pPropertyBuilder, uint16_t receiveMax, const uint8_t *pOptionalMqttPacketType)
Adds Receive Maximum property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:817
MQTTStatus_t MQTT_DeserializeConnAck(const MQTTPacketInfo_t *pIncomingPacket, bool *pSessionPresent, MQTTPropBuilder_t *pPropBuffer, MQTTConnectionProperties_t *pConnectProperties)
Deserialize an MQTT CONNACK.
Definition: core_mqtt_serializer.c:4645
MQTTStatus_t MQTT_GetConnectPacketSize(const MQTTConnectInfo_t *pConnectInfo, const MQTTPublishInfo_t *pWillInfo, const MQTTPropBuilder_t *pConnectProperties, const MQTTPropBuilder_t *pWillProperties, uint32_t *pRemainingLength, uint32_t *pPacketSize)
Get the size and Remaining Length of an MQTT Version 5 CONNECT packet.
Definition: core_mqtt_serializer.c:3097
MQTTStatus_t MQTTPropAdd_UserProp(MQTTPropBuilder_t *pPropertyBuilder, const MQTTUserProperty_t *userProperty, const uint8_t *pOptionalMqttPacketType)
Adds User Property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:692
MQTTStatus_t MQTT_ProcessIncomingPacketTypeAndLength(const uint8_t *pBuffer, const size_t *pIndex, MQTTPacketInfo_t *pIncomingPacket)
Extract the MQTT packet type and length from incoming packet.
Definition: core_mqtt_serializer.c:4921
MQTTStatus_t MQTT_GetIncomingPacketTypeAndLength(TransportRecv_t readFunc, NetworkContext_t *pNetworkContext, MQTTPacketInfo_t *pIncomingPacket)
Extract the MQTT packet type and length from incoming packet.
Definition: core_mqtt_serializer.c:4827
MQTTStatus_t MQTTPropGet_MaxQos(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint8_t *pMaxQos)
Get Maximum QoS property from property builder.
Definition: core_mqtt_prop_deserializer.c:641
MQTTStatus_t MQTT_GetDisconnectPacketSize(const MQTTPropBuilder_t *pDisconnectProperties, uint32_t *pRemainingLength, uint32_t *pPacketSize, uint32_t maxPacketSize, const MQTTSuccessFailReasonCode_t *pReasonCode)
Get the size of an MQTT DISCONNECT packet.
Definition: core_mqtt_serializer.c:4333
MQTTStatus_t MQTT_GetPingreqPacketSize(uint32_t *pPacketSize)
Get the size of an MQTT PINGREQ packet.
Definition: core_mqtt_serializer.c:4530
MQTTStatus_t MQTTPropAdd_ContentType(MQTTPropBuilder_t *pPropertyBuilder, const char *contentType, size_t contentTypeLength, const uint8_t *pOptionalMqttPacketType)
Adds Content Type property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1124
MQTTStatus_t MQTTPropGet_WildcardId(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint8_t *pWildcardAvailable)
Get Wildcard Subscription Available property from property builder.
Definition: core_mqtt_prop_deserializer.c:697
MQTTStatus_t MQTTPropGet_SessionExpiry(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint32_t *pSessionExpiry)
Get Session Expiry Interval property from property builder.
Definition: core_mqtt_prop_deserializer.c:623
MQTTStatus_t MQTTPropGet_TopicAliasMax(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint16_t *pTopicAliasMax)
Get Topic Alias Maximum property from property builder.
Definition: core_mqtt_prop_deserializer.c:678
MQTTStatus_t MQTTPropGet_UserProp(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, MQTTUserProperty_t *pUserProperty)
Get User Property from property builder.
Definition: core_mqtt_prop_deserializer.c:566
MQTTStatus_t MQTTPropGet_ServerRef(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pServerRef, size_t *pServerRefLength)
Get Server Reference property from property builder.
Definition: core_mqtt_prop_deserializer.c:743
MQTTStatus_t MQTTPropGet_ResponseInfo(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pResponseInfo, size_t *pResponseInfoLength)
Get Response Information property from property builder.
Definition: core_mqtt_prop_deserializer.c:733
MQTTStatus_t MQTTPropAdd_CorrelationData(MQTTPropBuilder_t *pPropertyBuilder, const void *pCorrelationData, size_t correlationLength, const uint8_t *pOptionalMqttPacketType)
Adds Correlation Data property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1096
MQTTStatus_t MQTT_SerializeAck(const MQTTFixedBuffer_t *pFixedBuffer, uint8_t packetType, uint16_t packetId, const MQTTPropBuilder_t *pAckProperties, const MQTTSuccessFailReasonCode_t *pReasonCode)
Serialize an MQTT PUBACK, PUBREC, PUBREL, or PUBCOMP into the given buffer.
Definition: core_mqtt_serializer.c:4263
MQTTStatus_t MQTTPropGet_SubscriptionId(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint32_t *pSubscriptionId)
Get Subscription Identifier property from property builder.
Definition: core_mqtt_prop_deserializer.c:820
MQTTStatus_t MQTT_SerializePublish(const MQTTPublishInfo_t *pPublishInfo, const MQTTPropBuilder_t *pPublishProperties, uint16_t packetId, uint32_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT PUBLISH packet in the given buffer.
Definition: core_mqtt_serializer.c:3949
MQTTStatus_t MQTT_SerializeDisconnect(const MQTTPropBuilder_t *pDisconnectProperties, const MQTTSuccessFailReasonCode_t *pReasonCode, uint32_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT DISCONNECT packet into the given buffer.
Definition: core_mqtt_serializer.c:4444
MQTTStatus_t updateContextWithConnectProps(const MQTTPropBuilder_t *pPropBuilder, MQTTConnectionProperties_t *pConnectProperties)
Updates the MQTT context with connect properties from the property builder.
Definition: core_mqtt_serializer.c:2985
MQTTStatus_t MQTT_InitConnect(MQTTConnectionProperties_t *pConnectProperties)
Initialize an MQTTConnectionProperties_t.
Definition: core_mqtt_serializer.c:4979
MQTTStatus_t MQTTPropGet_AuthData(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pAuthData, size_t *pAuthDataLen)
Get Authentication Data property from property builder.
Definition: core_mqtt_prop_deserializer.c:763
MQTTStatus_t MQTTPropGet_ReceiveMax(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint16_t *pReceiveMax)
Get Receive Maximum property from property builder.
Definition: core_mqtt_prop_deserializer.c:632
MQTTStatus_t MQTTPropAdd_AuthData(MQTTPropBuilder_t *pPropertyBuilder, const char *authData, size_t authDataLength, const uint8_t *pOptionalMqttPacketType)
Adds Authentication Data property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:939
MQTTStatus_t MQTT_SerializeSubscribe(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, const MQTTPropBuilder_t *pSubscribeProperties, uint16_t packetId, uint32_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT SUBSCRIBE packet in the given buffer.
Definition: core_mqtt_serializer.c:3572
MQTTStatus_t MQTTPropGet_PayloadFormatIndicator(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint8_t *pPayloadFormat)
Get Payload Format Indicator property from property builder.
Definition: core_mqtt_prop_deserializer.c:773
MQTTStatus_t MQTT_ValidatePublishParams(const MQTTPublishInfo_t *pPublishInfo, uint8_t retainAvailable, uint8_t maxQos, uint16_t topicAlias, uint32_t maxPacketSize)
Validate the publish parameters present in the given publish structure pPublishInfo.
Definition: core_mqtt_serializer.c:5654
MQTTStatus_t MQTTPropAdd_MessageExpiry(MQTTPropBuilder_t *pPropertyBuilder, uint32_t messageExpiry, const uint8_t *pOptionalMqttPacketType)
Adds Message Expiry Interval property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1002
MQTTStatus_t MQTTPropAdd_WillDelayInterval(MQTTPropBuilder_t *pPropertyBuilder, uint32_t willDelayInterval, const uint8_t *pOptionalMqttPacketType)
Adds Will Delay Interval property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:1015
MQTTStatus_t MQTT_SerializeUnsubscribe(const MQTTSubscribeInfo_t *pSubscriptionList, size_t subscriptionCount, const MQTTPropBuilder_t *pUnsubscribeProperties, uint16_t packetId, uint32_t remainingLength, const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT UNSUBSCRIBE packet with properties in the given buffer.
Definition: core_mqtt_serializer.c:3820
MQTTStatus_t MQTTPropGet_SharedSubAvailable(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, uint8_t *pSharedSubAvailable)
Get Shared Subscription Available property from property builder.
Definition: core_mqtt_prop_deserializer.c:715
MQTTStatus_t MQTT_ValidatePublishAckProperties(const MQTTPropBuilder_t *pPropertyBuilder)
Validates the properties specified for an MQTT PUBLISH ACK packet.
Definition: core_mqtt_serializer.c:5714
MQTTStatus_t MQTTPropGet_ReasonString(const MQTTPropBuilder_t *pPropertyBuilder, size_t *currentIndex, const char **pReasonString, size_t *pReasonStringLength)
Get Reason String property from property builder.
Definition: core_mqtt_prop_deserializer.c:687
MQTTStatus_t MQTT_ValidateUnsubscribeProperties(const MQTTPropBuilder_t *pPropertyBuilder)
Validates the properties specified for an MQTT UNSUBSCRIBE packet.
Definition: core_mqtt_serializer.c:3764
MQTTStatus_t MQTTPropAdd_RequestProbInfo(MQTTPropBuilder_t *pPropertyBuilder, bool requestProblemInfo, const uint8_t *pOptionalMqttPacketType)
Adds Request Problem Information property to the MQTT property builder.
Definition: core_mqtt_prop_serializer.c:896
MQTTStatus_t MQTT_SerializePingreq(const MQTTFixedBuffer_t *pFixedBuffer)
Serialize an MQTT PINGREQ packet into the given buffer.
Definition: core_mqtt_serializer.c:4550
int32_t(* TransportRecv_t)(NetworkContext_t *pNetworkContext, void *pBuffer, size_t bytesToRecv)
Transport interface for receiving data on the network.
Definition: transport_interface.h:222
MQTTRetainHandling_t
Retain Handling types.
Definition: core_mqtt_serializer.h:340
MQTTSuccessFailReasonCode_t
MQTT reason codes.
Definition: core_mqtt_serializer.h:583
MQTTSubscriptionType_t
MQTT Subscription packet types.
Definition: core_mqtt_serializer.h:726
MQTTStatus_t
Return codes from MQTT functions.
Definition: core_mqtt_serializer.h:239
MQTTQoS_t
MQTT Quality of Service values.
Definition: core_mqtt_serializer.h:270
@ retainSendOnSubIfNotPresent
Definition: core_mqtt_serializer.h:342
@ retainDoNotSendonSub
Definition: core_mqtt_serializer.h:343
@ retainSendOnSub
Definition: core_mqtt_serializer.h:341
@ MQTT_REASON_CONNACK_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:631
@ MQTT_REASON_PUBACK_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:592
@ MQTT_REASON_DISCONNECT_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:682
@ MQTT_REASON_PUBREC_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:602
@ MQTT_REASON_PUBREL_SUCCESS
Definition: core_mqtt_serializer.h:607
@ MQTT_REASON_PUBREC_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:598
@ MQTT_REASON_DISCONNECT_SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:690
@ MQTT_REASON_PUBREC_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:601
@ MQTT_REASON_CONNACK_CONNECTION_RATE_EXCEEDED
Definition: core_mqtt_serializer.h:636
@ MQTT_REASON_CONNACK_UNSUPPORTED_PROTOCOL_VERSION
Definition: core_mqtt_serializer.h:620
@ MQTT_REASON_UNSUBACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:656
@ MQTT_REASON_CONNACK_CLIENT_IDENTIFIER_NOT_VALID
Definition: core_mqtt_serializer.h:621
@ MQTT_REASON_PUBREC_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:603
@ MQTT_REASON_DISCONNECT_MALFORMED_PACKET
Definition: core_mqtt_serializer.h:665
@ MQTT_REASON_DISCONNECT_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:667
@ MQTT_REASON_CONNACK_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:628
@ MQTT_REASON_PUBREL_PACKET_IDENTIFIER_NOT_FOUND
Definition: core_mqtt_serializer.h:608
@ MQTT_REASON_PUBCOMP_SUCCESS
Definition: core_mqtt_serializer.h:611
@ MQTT_REASON_UNSUBACK_SUCCESS
Definition: core_mqtt_serializer.h:653
@ MQTT_REASON_PUBCOMP_PACKET_IDENTIFIER_NOT_FOUND
Definition: core_mqtt_serializer.h:612
@ MQTT_REASON_UNSUBACK_TOPIC_FILTER_INVALID
Definition: core_mqtt_serializer.h:658
@ MQTT_REASON_CONNACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:616
@ MQTT_REASON_DISCONNECT_MAXIMUM_CONNECT_TIME
Definition: core_mqtt_serializer.h:689
@ MQTT_REASON_SUBACK_SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:649
@ MQTT_REASON_DISCONNECT_USE_ANOTHER_SERVER
Definition: core_mqtt_serializer.h:685
@ MQTT_REASON_CONNACK_SERVER_UNAVAILABLE
Definition: core_mqtt_serializer.h:624
@ MQTT_REASON_DISCONNECT_CONNECTION_RATE_EXCEEDED
Definition: core_mqtt_serializer.h:688
@ MQTT_REASON_DISCONNECT_ADMINISTRATIVE_ACTION
Definition: core_mqtt_serializer.h:681
@ MQTT_REASON_UNSUBACK_NO_SUBSCRIPTION_EXISTED
Definition: core_mqtt_serializer.h:654
@ MQTT_REASON_CONNACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:623
@ MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION
Definition: core_mqtt_serializer.h:662
@ MQTT_REASON_DISCONNECT_SESSION_TAKEN_OVER
Definition: core_mqtt_serializer.h:673
@ MQTT_REASON_DISCONNECT_KEEP_ALIVE_TIMEOUT
Definition: core_mqtt_serializer.h:672
@ MQTT_REASON_SUBACK_TOPIC_FILTER_INVALID
Definition: core_mqtt_serializer.h:645
@ MQTT_REASON_DISCONNECT_TOPIC_FILTER_INVALID
Definition: core_mqtt_serializer.h:674
@ MQTT_REASON_SUBACK_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:646
@ MQTT_REASON_SUBACK_GRANTED_QOS0
Definition: core_mqtt_serializer.h:639
@ MQTT_REASON_PUBACK_NO_MATCHING_SUBSCRIBERS
Definition: core_mqtt_serializer.h:586
@ MQTT_REASON_UNSUBACK_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:659
@ MQTT_REASON_CONNACK_PACKET_TOO_LARGE
Definition: core_mqtt_serializer.h:629
@ MQTT_REASON_DISCONNECT_SERVER_MOVED
Definition: core_mqtt_serializer.h:686
@ MQTT_REASON_DISCONNECT_RECEIVE_MAXIMUM_EXCEEDED
Definition: core_mqtt_serializer.h:676
@ MQTT_REASON_SUBACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:644
@ MQTT_REASON_PUBACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:588
@ MQTT_REASON_DISCONNECT_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:664
@ MQTT_REASON_DISCONNECT_PROTOCOL_ERROR
Definition: core_mqtt_serializer.h:666
@ MQTT_REASON_PUBACK_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:590
@ MQTT_REASON_PUBREC_SUCCESS
Definition: core_mqtt_serializer.h:596
@ MQTT_REASON_PUBREC_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:600
@ MQTT_REASON_PUBACK_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:593
@ MQTT_REASON_DISCONNECT_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:691
@ MQTT_REASON_CONNACK_USE_ANOTHER_SERVER
Definition: core_mqtt_serializer.h:634
@ MQTT_REASON_PUBACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:587
@ MQTT_REASON_PUBREC_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:604
@ MQTT_REASON_PUBACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:589
@ MQTT_REASON_CONNACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:619
@ MQTT_REASON_CONNACK_SUCCESS
Definition: core_mqtt_serializer.h:615
@ MQTT_INVALID_REASON_CODE
Invalid reason code.
Definition: core_mqtt_serializer.h:693
@ MQTT_REASON_DISCONNECT_TOPIC_ALIAS_INVALID
Definition: core_mqtt_serializer.h:677
@ MQTT_REASON_PUBREC_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:599
@ MQTT_REASON_DISCONNECT_QOS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:684
@ MQTT_REASON_CONNACK_BAD_AUTHENTICATION_METHOD
Definition: core_mqtt_serializer.h:627
@ MQTT_REASON_DISCONNECT_DISCONNECT_WITH_WILL_MESSAGE
Definition: core_mqtt_serializer.h:663
@ MQTT_REASON_CONNACK_RETAIN_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:632
@ MQTT_REASON_CONNACK_SERVER_MOVED
Definition: core_mqtt_serializer.h:635
@ MQTT_REASON_SUBACK_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:647
@ MQTT_REASON_SUBACK_GRANTED_QOS1
Definition: core_mqtt_serializer.h:640
@ MQTT_REASON_DISCONNECT_SERVER_SHUTTING_DOWN
Definition: core_mqtt_serializer.h:670
@ MQTT_REASON_DISCONNECT_RETAIN_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:683
@ MQTT_REASON_DISCONNECT_SERVER_BUSY
Definition: core_mqtt_serializer.h:669
@ MQTT_REASON_PUBREC_NO_MATCHING_SUBSCRIBERS
Definition: core_mqtt_serializer.h:597
@ MQTT_REASON_CONNACK_PROTOCOL_ERROR
Definition: core_mqtt_serializer.h:618
@ MQTT_REASON_CONNACK_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:630
@ MQTT_REASON_SUBACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:642
@ MQTT_REASON_DISCONNECT_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:675
@ MQTT_REASON_CONNACK_QOS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:633
@ MQTT_REASON_DISCONNECT_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:687
@ MQTT_REASON_DISCONNECT_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:668
@ MQTT_REASON_DISCONNECT_BAD_AUTHENTICATION_METHOD
Definition: core_mqtt_serializer.h:671
@ MQTT_REASON_DISCONNECT_PACKET_TOO_LARGE
Definition: core_mqtt_serializer.h:678
@ MQTT_REASON_CONNACK_MALFORMED_PACKET
Definition: core_mqtt_serializer.h:617
@ MQTT_REASON_SUBACK_GRANTED_QOS2
Definition: core_mqtt_serializer.h:641
@ MQTT_REASON_SUBACK_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:650
@ MQTT_REASON_CONNACK_BANNED
Definition: core_mqtt_serializer.h:626
@ MQTT_REASON_SUBACK_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:648
@ MQTT_REASON_PUBACK_SUCCESS
Definition: core_mqtt_serializer.h:585
@ MQTT_REASON_UNSUBACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:655
@ MQTT_REASON_DISCONNECT_MESSAGE_RATE_TOO_HIGH
Definition: core_mqtt_serializer.h:679
@ MQTT_REASON_CONNACK_SERVER_BUSY
Definition: core_mqtt_serializer.h:625
@ MQTT_REASON_PUBACK_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:591
@ MQTT_REASON_CONNACK_BAD_USER_NAME_OR_PASSWORD
Definition: core_mqtt_serializer.h:622
@ MQTT_REASON_UNSUBACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:657
@ MQTT_REASON_DISCONNECT_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:680
@ MQTT_REASON_SUBACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:643
@ MQTT_TYPE_UNSUBSCRIBE
The type is a UNSUBSCRIBE packet.
Definition: core_mqtt_serializer.h:728
@ MQTT_TYPE_SUBSCRIBE
The type is a SUBSCRIBE packet.
Definition: core_mqtt_serializer.h:727
@ MQTTStatusNotConnected
Definition: core_mqtt_serializer.h:256
@ MQTTKeepAliveTimeout
Definition: core_mqtt_serializer.h:250
@ MQTTStatusDisconnectPending
Definition: core_mqtt_serializer.h:257
@ MQTTServerRefused
Definition: core_mqtt_serializer.h:246
@ MQTTPublishRetrieveFailed
Definition: core_mqtt_serializer.h:260
@ MQTTSuccess
Definition: core_mqtt_serializer.h:240
@ MQTTPublishStoreFailed
Definition: core_mqtt_serializer.h:258
@ MQTTNoDataAvailable
Definition: core_mqtt_serializer.h:247
@ MQTTIllegalState
Definition: core_mqtt_serializer.h:248
@ MQTTStateCollision
Definition: core_mqtt_serializer.h:249
@ MQTTEventCallbackFailed
Definition: core_mqtt_serializer.h:262
@ MQTTStatusConnected
Definition: core_mqtt_serializer.h:255
@ MQTTRecvFailed
Definition: core_mqtt_serializer.h:244
@ MQTTBadParameter
Definition: core_mqtt_serializer.h:241
@ MQTTBadResponse
Definition: core_mqtt_serializer.h:245
@ MQTTNeedMoreBytes
Definition: core_mqtt_serializer.h:251
@ MQTTNoMemory
Definition: core_mqtt_serializer.h:242
@ MQTTEndOfProperties
Definition: core_mqtt_serializer.h:254
@ MQTTSendFailed
Definition: core_mqtt_serializer.h:243
@ MQTTQoS1
Definition: core_mqtt_serializer.h:272
@ MQTTQoS2
Definition: core_mqtt_serializer.h:273
@ MQTTQoS0
Definition: core_mqtt_serializer.h:271
struct NetworkContext NetworkContext_t
The NetworkContext is an incomplete type. An implementation of this interface must define struct Netw...
Definition: transport_interface.h:192
MQTT CONNECT packet parameters.
Definition: core_mqtt_serializer.h:294
const char * pClientIdentifier
MQTT client identifier. Must be unique per client.
Definition: core_mqtt_serializer.h:308
size_t clientIdentifierLength
Length of the client identifier.
Definition: core_mqtt_serializer.h:313
const char * pUserName
MQTT user name. Set to NULL if not used.
Definition: core_mqtt_serializer.h:318
bool cleanSession
Whether to establish a new, clean session or resume a previous session.
Definition: core_mqtt_serializer.h:298
size_t userNameLength
Length of MQTT user name. Set to 0 if not used.
Definition: core_mqtt_serializer.h:323
uint16_t keepAliveSeconds
MQTT keep alive period.
Definition: core_mqtt_serializer.h:303
const char * pPassword
MQTT password. Set to NULL if not used.
Definition: core_mqtt_serializer.h:328
size_t passwordLength
Length of MQTT password. Set to 0 if not used.
Definition: core_mqtt_serializer.h:333
Struct to hold connect and connack properties.
Definition: core_mqtt_serializer.h:496
bool requestResponseInfo
A value of 0 indicates that the Server MUST NOT return Response Information.
Definition: core_mqtt_serializer.h:520
uint16_t serverTopicAliasMax
Two Byte Integer representing the Topic Alias Maximum value.
Definition: core_mqtt_serializer.h:551
uint8_t isSharedAvailable
Whether the Server supports Shared Subscription.
Definition: core_mqtt_serializer.h:566
bool requestProblemInfo
The Client uses this value to indicate whether the Reason String or User Properties are sent in the c...
Definition: core_mqtt_serializer.h:526
uint8_t isSubscriptionIdAvailable
Whether the Server supports Subscription Identifiers.
Definition: core_mqtt_serializer.h:561
uint8_t serverMaxQos
Max qos supported by the server.
Definition: core_mqtt_serializer.h:536
uint16_t receiveMax
Maximum number of unacknowledged PUBLISH packets client is willing to receive.
Definition: core_mqtt_serializer.h:505
uint8_t retainAvailable
Byte declares whether the Server supports retained messages.
Definition: core_mqtt_serializer.h:541
uint16_t serverKeepAlive
Keep Alive value given by the server.
Definition: core_mqtt_serializer.h:571
uint32_t serverMaxPacketSize
Four Byte Integer representing the Maximum Packet Size the Server is willing to accept.
Definition: core_mqtt_serializer.h:546
uint16_t topicAliasMax
Two Byte Integer representing the Topic Alias Maximum value.
Definition: core_mqtt_serializer.h:515
uint32_t sessionExpiry
Four Byte Integer representing the Session Expiry Interval in seconds.
Definition: core_mqtt_serializer.h:500
uint32_t maxPacketSize
Four Byte Integer representing the Maximum Packet Size the Client is willing to accept.
Definition: core_mqtt_serializer.h:510
uint8_t isWildcardAvailable
Whether wildcard subscription is available.
Definition: core_mqtt_serializer.h:556
uint16_t serverReceiveMax
Maximum number of unacknowledged PUBLISH packets server is willing to receive.
Definition: core_mqtt_serializer.h:531
Buffer passed to MQTT library.
Definition: core_mqtt_serializer.h:284
size_t size
Size of buffer.
Definition: core_mqtt_serializer.h:286
uint8_t * pBuffer
Pointer to buffer.
Definition: core_mqtt_serializer.h:285
MQTT incoming packet parameters.
Definition: core_mqtt_serializer.h:443
uint32_t remainingLength
Length of remaining serialized data.
Definition: core_mqtt_serializer.h:457
uint8_t type
Type of incoming MQTT packet.
Definition: core_mqtt_serializer.h:447
size_t headerLength
The length of the MQTT header including the type and length.
Definition: core_mqtt_serializer.h:462
uint8_t * pRemainingData
Remaining serialized data in the MQTT packet.
Definition: core_mqtt_serializer.h:452
Property builder for MQTT packets.
Definition: core_mqtt_serializer.h:470
size_t currentIndex
Current position in the buffer where next property will be written.
Definition: core_mqtt_serializer.h:473
uint32_t fieldSet
Bitfield tracking which properties have been added.
Definition: core_mqtt_serializer.h:474
uint8_t * pBuffer
Pointer to the buffer for storing properties.
Definition: core_mqtt_serializer.h:471
size_t bufferLength
Total length of the buffer available for properties.
Definition: core_mqtt_serializer.h:472
MQTT PUBLISH packet parameters.
Definition: core_mqtt_serializer.h:395
MQTTQoS_t qos
Quality of Service for message.
Definition: core_mqtt_serializer.h:399
bool retain
Whether this is a retained message.
Definition: core_mqtt_serializer.h:404
size_t payloadLength
Message payload length.
Definition: core_mqtt_serializer.h:429
size_t topicNameLength
Length of topic name.
Definition: core_mqtt_serializer.h:419
bool dup
Whether this is a duplicate publish message.
Definition: core_mqtt_serializer.h:409
const char * pTopicName
Topic name on which the message is published.
Definition: core_mqtt_serializer.h:414
size_t propertyLength
Length of the properties.
Definition: core_mqtt_serializer.h:434
const void * pPayload
Message payload.
Definition: core_mqtt_serializer.h:424
Struct to hold reason codes.
Definition: core_mqtt_serializer.h:482
size_t reasonCodeLength
Length of the reason code array.
Definition: core_mqtt_serializer.h:487
const uint8_t * reasonCode
Pointer to the reason code array.
Definition: core_mqtt_serializer.h:484
MQTT SUBSCRIBE packet parameters.
Definition: core_mqtt_serializer.h:351
bool retainAsPublishedOption
If true, Application Messages forwarded using this subscription keep the RETAIN flag they were publis...
Definition: core_mqtt_serializer.h:380
size_t topicFilterLength
Length of subscription topic filter - unsigned long.
Definition: core_mqtt_serializer.h:365
MQTTQoS_t qos
Quality of Service for subscription. Include protocol error of qos > 2.
Definition: core_mqtt_serializer.h:355
MQTTRetainHandling_t retainHandlingOption
Specifies whether retained messages are sent when the subscription is established.
Definition: core_mqtt_serializer.h:386
bool noLocalOption
no local option for subscription. Include protocol error if noLocalOption = 1 in a shared subscriptio...
Definition: core_mqtt_serializer.h:374
const char * pTopicFilter
Topic filter to subscribe to.
Definition: core_mqtt_serializer.h:360
Struct to hold user property.
Definition: core_mqtt_serializer.h:702
const char * pValue
value.
Definition: core_mqtt_serializer.h:714
size_t keyLength
Length of the key.
Definition: core_mqtt_serializer.h:710
const char * pKey
key.
Definition: core_mqtt_serializer.h:706
size_t valueLength
Length of the value.
Definition: core_mqtt_serializer.h:718
Transport interface definitions to send and receive data over the network.