coreMQTT v5.0.2
MQTT 5.0 Client Library
 
Loading...
Searching...
No Matches
core_mqtt_serializer.h
Go to the documentation of this file.
1/*
2 * coreMQTT
3 * Copyright (C) 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4 *
5 * SPDX-License-Identifier: MIT
6 *
7 * Permission is hereby granted, free of charge, to any person obtaining a copy of
8 * this software and associated documentation files (the "Software"), to deal in
9 * the Software without restriction, including without limitation the rights to
10 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
11 * the Software, and to permit persons to whom the Software is furnished to do so,
12 * subject to the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be included in all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
19 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
20 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
21 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 */
24
32#ifndef CORE_MQTT_SERIALIZER_H
33#define CORE_MQTT_SERIALIZER_H
34
35#include <stddef.h>
36#include <stdint.h>
37#include <stdbool.h>
38
39/* *INDENT-OFF* */
40#ifdef __cplusplus
41 extern "C" {
42#endif
43/* *INDENT-ON */
44
45#include "transport_interface.h"
46
47/* MQTT packet types. */
48
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 )
89/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-22 */
90/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-28 */
91/* coverity[misra_c_2012_rule_2_2_violation] */
92/* coverity[misra_c_2012_rule_2_8_violation] */
93static const uint8_t MQTT_PACKET_TYPE_CONNECT_VAL = ( uint8_t ) 0x10U;
94/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-22 */
95/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-28 */
96/* coverity[misra_c_2012_rule_2_2_violation] */
97/* coverity[misra_c_2012_rule_2_8_violation] */
98static const uint8_t MQTT_PACKET_TYPE_PUBLISH_VAL = ( uint8_t ) 0x30U;
99/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-22 */
100/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-28 */
101/* coverity[misra_c_2012_rule_2_2_violation] */
102/* coverity[misra_c_2012_rule_2_8_violation] */
103static const uint8_t MQTT_PACKET_TYPE_SUBSCRIBE_VAL = ( uint8_t ) 0x82U;
104/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-22 */
105/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-28 */
106/* coverity[misra_c_2012_rule_2_2_violation] */
107/* coverity[misra_c_2012_rule_2_8_violation] */
108static const uint8_t MQTT_PACKET_TYPE_UNSUBSCRIBE_VAL = ( uint8_t ) 0xA2U;
109/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-22 */
110/* More details at: https://github.com/FreeRTOS/coreMQTT/blob/main/MISRA.md#rule-28 */
111/* coverity[misra_c_2012_rule_2_2_violation] */
112/* coverity[misra_c_2012_rule_2_8_violation] */
113static const uint8_t MQTT_PACKET_TYPE_DISCONNECT_VAL = ( uint8_t ) 0xE0U;
115#define MQTT_PROP_VALIDATE_CONNECT ( &MQTT_PACKET_TYPE_CONNECT_VAL )
116#define MQTT_PROP_VALIDATE_PUBLISH ( &MQTT_PACKET_TYPE_PUBLISH_VAL )
117#define MQTT_PROP_VALIDATE_SUBSCRIBE ( &MQTT_PACKET_TYPE_SUBSCRIBE_VAL )
118#define MQTT_PROP_VALIDATE_UNSUBSCRIBE ( &MQTT_PACKET_TYPE_UNSUBSCRIBE_VAL )
119#define MQTT_PROP_VALIDATE_DISCONNECT ( &MQTT_PACKET_TYPE_DISCONNECT_VAL )
120#define MQTT_PROP_NO_VALIDATE ( NULL )
128#define MQTT_PUBLISH_ACK_PACKET_SIZE ( 4UL )
129
130#define MQTT_SUBSCRIBE_QOS1 ( 0U )
131#define MQTT_SUBSCRIBE_QOS2 ( 1U )
132#define MQTT_SUBSCRIBE_NO_LOCAL ( 2U )
133#define MQTT_SUBSCRIBE_RETAIN_AS_PUBLISHED ( 3U )
134#define MQTT_SUBSCRIBE_RETAIN_HANDLING1 ( 4U )
135#define MQTT_SUBSCRIBE_RETAIN_HANDLING2 ( 5U )
137/* CONNECT PROPERTIES. */
138
142#define MQTT_SESSION_EXPIRY_ID ( 0x11U )
143
147#define MQTT_RECEIVE_MAX_ID ( 0x21U )
148
152#define MQTT_MAX_PACKET_SIZE_ID ( 0x27U )
153
157#define MQTT_TOPIC_ALIAS_MAX_ID ( 0x22U )
158
162#define MQTT_REQUEST_RESPONSE_ID ( 0x19U )
163
167#define MQTT_REQUEST_PROBLEM_ID ( 0x17U )
168
172#define MQTT_USER_PROPERTY_ID ( 0x26U )
173
177#define MQTT_AUTH_METHOD_ID ( 0x15U )
178
182#define MQTT_AUTH_DATA_ID ( 0x16U )
183
184
185/* Publish properties. */
186
190#define MQTT_WILL_DELAY_ID ( 0x18U )
191
195#define MQTT_PAYLOAD_FORMAT_ID ( 0x01U )
196
200#define MQTT_MSG_EXPIRY_ID ( 0x02U )
201
205#define MQTT_CONTENT_TYPE_ID ( 0x03U )
206
210#define MQTT_RESPONSE_TOPIC_ID ( 0x08U )
211
215#define MQTT_CORRELATION_DATA_ID ( 0x09U )
216
220#define MQTT_TOPIC_ALIAS_ID ( 0x23U )
221
222
223/* CONNACK PROPERTIES. */
224
228#define MQTT_MAX_QOS_ID ( 0x24U )
229
233#define MQTT_RETAIN_AVAILABLE_ID ( 0x25U )
234
238#define MQTT_ASSIGNED_CLIENT_ID ( 0x12U )
239
243#define MQTT_REASON_STRING_ID ( 0x1FU )
244
248#define MQTT_WILDCARD_ID ( 0x28U )
249
253#define MQTT_SUB_AVAILABLE_ID ( 0x29U )
254
258#define MQTT_SHARED_SUB_ID ( 0x2AU )
259
263#define MQTT_SERVER_KEEP_ALIVE_ID ( 0x13U )
264
269#define MQTT_RESPONSE_INFO_ID ( 0x1AU )
270
274#define MQTT_SERVER_REF_ID ( 0x1CU )
275
279#define MQTT_SUBSCRIPTION_ID_ID ( 0x0BU )
280
281/* Structures defined in this file. */
282struct MQTTFixedBuffer;
283struct MQTTConnectInfo;
284struct MQTTSubscribeInfo;
285struct MQTTPublishInfo;
286struct MQTTPacketInfo;
287
292typedef enum MQTTStatus
293{
318
323typedef enum MQTTQoS
324{
327 MQTTQoS2 = 2
329
337typedef struct MQTTFixedBuffer
338{
339 uint8_t * pBuffer;
340 size_t size;
342
347typedef struct MQTTConnectInfo
348{
353
358
362 const char * pClientIdentifier;
363
368
372 const char * pUserName;
373
378
382 const char * pPassword;
383
389
394typedef enum MQTTRetainHandling{
399
404typedef struct MQTTSubscribeInfo
405{
410
414 const char * pTopicFilter;
415
429
435
441
443
448typedef struct MQTTPublishInfo
449{
454
458 bool retain;
459
463 bool dup;
464
468 const char * pTopicName;
469
474
478 const void * pPayload;
479
484
489
491
496typedef struct MQTTPacketInfo
497{
501 uint8_t type;
502
506 uint8_t * pRemainingData;
507
512
518
523typedef struct MQTTPropBuilder
524{
525 uint8_t * pBuffer;
528 uint32_t fieldSet;
530
535typedef struct MQTTReasonCodeInfo
536{
538 const uint8_t * reasonCode;
539
542
544
549typedef struct MQTTConnectProperties
550{
555
559 uint16_t receiveMax;
560
565
570
575
581
586
591
596
601
606
611
616
621
626
627
629
636typedef enum MQTTSuccessFailReasonCode
637{
638 /* PUBACK reason codes */
649 /* PUBREC reason codes */
660 /* PUBREL reason codes */
664 /* PUBCOMP reason codes */
668 /* CONNACK reason codes */
692 /* SUBACK reason codes */
706 /* UNSUBACK reason codes */
715 /* DISCONNECT reason codes */
750
755typedef struct MQTTUserProperty
756{
760 const char * pKey;
764 size_t keyLength;
768 const char * pValue;
774
779typedef enum MQTTSubscriptionType
780{
784
845/* @[declare_mqtt_getconnectpacketsize] */
847 const MQTTPublishInfo_t * pWillInfo,
848 const MQTTPropBuilder_t * pConnectProperties,
849 const MQTTPropBuilder_t * pWillProperties,
850 uint32_t * pRemainingLength,
851 uint32_t * pPacketSize );
852/* @[declare_mqtt_getconnectpacketsize] */
853
916/* @[declare_mqtt_serializeconnect] */
918 const MQTTPublishInfo_t * pWillInfo,
919 const MQTTPropBuilder_t * pConnectProperties,
920 const MQTTPropBuilder_t * pWillProperties,
921 uint32_t remainingLength,
922 const MQTTFixedBuffer_t * pFixedBuffer );
923/* @[declare_mqtt_serializeconnect] */
924
991/* @[declare_mqtt_getsubscribepacketsize] */
993 size_t subscriptionCount,
994 const MQTTPropBuilder_t * pSubscribeProperties,
995 uint32_t * pRemainingLength,
996 uint32_t * pPacketSize,
997 uint32_t maxPacketSize );
998/* @[declare_mqtt_getsubscribepacketsize] */
999
1065/* @[declare_mqtt_serializesubscribe] */
1067 size_t subscriptionCount,
1068 const MQTTPropBuilder_t * pSubscribeProperties,
1069 uint16_t packetId,
1070 uint32_t remainingLength,
1071 const MQTTFixedBuffer_t * pFixedBuffer );
1072/* @[declare_mqtt_serializesubscribe] */
1073
1130/* @[declare_mqtt_getunsubscribepacketsize] */
1132 size_t subscriptionCount,
1133 const MQTTPropBuilder_t * pUnsubscribeProperties,
1134 uint32_t * pRemainingLength,
1135 uint32_t * pPacketSize,
1136 uint32_t maxPacketSize );
1137/* @[declare_mqtt_getunsubscribepacketsize] */
1138
1213/* @[declare_mqtt_serializeunsubscribe] */
1215 size_t subscriptionCount,
1216 const MQTTPropBuilder_t * pUnsubscribeProperties,
1217 uint16_t packetId,
1218 uint32_t remainingLength,
1219 const MQTTFixedBuffer_t * pFixedBuffer );
1220/* @[declare_mqtt_serializeunsubscribe] */
1221
1281/* @[declare_mqtt_getpublishpacketsize] */
1283 const MQTTPropBuilder_t * pPublishProperties,
1284 uint32_t * pRemainingLength,
1285 uint32_t * pPacketSize,
1286 uint32_t maxPacketSize );
1287/* @[declare_mqtt_getpublishpacketsize] */
1288
1355/* @[declare_mqtt_serializepublish] */
1357 const MQTTPropBuilder_t * pPublishProperties,
1358 uint16_t packetId,
1359 uint32_t remainingLength,
1360 const MQTTFixedBuffer_t * pFixedBuffer );
1361/* @[declare_mqtt_serializepublish] */
1362
1376/* @[declare_mqtt_serializepublishheaderwithouttopic] */
1378 uint32_t remainingLength,
1379 uint8_t * pBuffer,
1380 size_t * headerSize );
1381/* @[declare_mqtt_serializepublishheaderwithouttopic] */
1382
1460/* @[declare_mqtt_serializepublishheader] */
1462 const MQTTPropBuilder_t * pPublishProperties,
1463 uint16_t packetId,
1464 uint32_t remainingLength,
1465 const MQTTFixedBuffer_t * pFixedBuffer,
1466 size_t * pHeaderSize );
1467/* @[declare_mqtt_serializepublishheader] */
1468
1515/* @[declare_mqtt_serializeack] */
1517 uint8_t packetType,
1518 uint16_t packetId,
1519 const MQTTPropBuilder_t * pAckProperties,
1520 const MQTTSuccessFailReasonCode_t * pReasonCode );
1521/* @[declare_mqtt_serializeack] */
1522
1560/* @[declare_mqtt_getdisconnectpacketsize] */
1561MQTTStatus_t MQTT_GetDisconnectPacketSize( const MQTTPropBuilder_t * pDisconnectProperties,
1562 uint32_t * pRemainingLength,
1563 uint32_t * pPacketSize,
1564 uint32_t maxPacketSize,
1565 const MQTTSuccessFailReasonCode_t * pReasonCode );
1566/* @[declare_mqtt_getdisconnectpacketsize] */
1567
1622/* @[declare_mqtt_serializedisconnect] */
1623MQTTStatus_t MQTT_SerializeDisconnect( const MQTTPropBuilder_t * pDisconnectProperties,
1624 const MQTTSuccessFailReasonCode_t * pReasonCode,
1625 uint32_t remainingLength,
1626 const MQTTFixedBuffer_t * pFixedBuffer );
1627/* @[declare_mqtt_serializedisconnect] */
1628
1653/* @[declare_mqtt_getpingreqpacketsize] */
1654MQTTStatus_t MQTT_GetPingreqPacketSize( uint32_t * pPacketSize );
1655/* @[declare_mqtt_getpingreqpacketsize] */
1656
1694/* @[declare_mqtt_serializepingreq] */
1696/* @[declare_mqtt_serializepingreq] */
1697
1765/* @[declare_mqtt_deserializepublish] */
1767 uint16_t * pPacketId,
1768 MQTTPublishInfo_t * pPublishInfo,
1769 MQTTPropBuilder_t * propBuffer,
1770 uint32_t maxPacketSize,
1771 uint16_t topicAliasMax );
1772/* @[declare_mqtt_deserializepublish] */
1773
1817/* @[declare_mqtt_deserializeack] */
1818MQTTStatus_t MQTT_DeserializeAck( const MQTTPacketInfo_t * pIncomingPacket,
1819 uint16_t * pPacketId,
1820 MQTTReasonCodeInfo_t * pReasonCode,
1821 MQTTPropBuilder_t * pPropBuffer,
1822 const MQTTConnectionProperties_t * pConnectProperties );
1823/* @[declare_mqtt_deserializeack] */
1824
1837/* @[declare_mqtt_deserializeconnack] */
1839 bool * pSessionPresent,
1840 MQTTPropBuilder_t * pPropBuffer,
1841 MQTTConnectionProperties_t * pConnectProperties );
1842/* @[declare_mqtt_deserializeconnack] */
1843
1904/* @[declare_mqtt_getincomingpackettypeandlength] */
1906 NetworkContext_t * pNetworkContext,
1907 MQTTPacketInfo_t * pIncomingPacket );
1908/* @[declare_mqtt_getincomingpackettypeandlength] */
1909
1928 /* @[declare_mqtt_processincomingpackettypeandlength] */
1930 const size_t * pIndex,
1931 MQTTPacketInfo_t * pIncomingPacket );
1932/* @[declare_mqtt_processincomingpackettypeandlength] */
1933
1943 /* @[declare_mqtt_updateduplicatepublishflag] */
1944MQTTStatus_t MQTT_UpdateDuplicatePublishFlag( uint8_t * pHeader, bool set );
1945/* @[declare_mqtt_updateduplicatepublishflag] */
1946
1961/* @[declare_mqtt_initconnect] */
1963/* @[declare_mqtt_initconnect] */
1964
1976/* @[declare_mqttpropertybuilder_init] */
1978 uint8_t * buffer,
1979 size_t length );
1980/* @[declare_mqttpropertybuilder_init] */
1981
1990/* @[declare_mqtt_validatewillproperties] */
1992/* @[declare_mqtt_validatewillproperties] */
1993
1994
2007/* @[declare_mqtt_validateconnectproperties] */
2009 bool * isRequestProblemInfoSet,
2010 uint32_t * pPacketMaxSizeValue );
2011/* @[declare_mqtt_validateconnectproperties] */
2012
2053/* @[declare_mqttpropadd_subscriptionid] */
2055 uint32_t subscriptionId,
2056 const uint8_t * pOptionalMqttPacketType );
2057/* @[declare_mqttpropadd_subscriptionid] */
2058
2075/* @[declare_mqttpropadd_userprop] */
2077 const MQTTUserProperty_t * userProperty,
2078 const uint8_t * pOptionalMqttPacketType );
2079/* @[declare_mqttpropadd_userprop] */
2080
2096/* @[declare_mqttpropadd_sessionexpiry] */
2098 uint32_t sessionExpiry,
2099 const uint8_t * pOptionalMqttPacketType );
2100/* @[declare_mqttpropadd_sessionexpiry] */
2101
2119/* @[declare_mqttpropadd_receivemax] */
2121 uint16_t receiveMax,
2122 const uint8_t * pOptionalMqttPacketType );
2123/* @[declare_mqttpropadd_receivemax] */
2124
2141/* @[declare_mqttpropadd_maxpacketsize] */
2143 uint32_t maxPacketSize,
2144 const uint8_t * pOptionalMqttPacketType );
2145/* @[declare_mqttpropadd_maxpacketsize] */
2146
2163/* @[declare_mqttpropadd_topicaliasmax] */
2165 uint16_t topicAliasMax,
2166 const uint8_t * pOptionalMqttPacketType );
2167/* @[declare_mqttpropadd_topicaliasmax] */
2168
2185/* @[declare_mqttpropadd_requestrespinfo] */
2187 bool requestResponseInfo,
2188 const uint8_t * pOptionalMqttPacketType );
2189/* @[declare_mqttpropadd_requestrespinfo] */
2190
2207/* @[declare_mqttpropadd_requestprobinfo] */
2209 bool requestProblemInfo,
2210 const uint8_t * pOptionalMqttPacketType );
2211/* @[declare_mqttpropadd_requestprobinfo] */
2212
2230/* @[declare_mqttpropadd_authmethod] */
2232 const char * authMethod,
2233 size_t authMethodLength,
2234 const uint8_t * pOptionalMqttPacketType );
2235/* @[declare_mqttpropadd_authmethod] */
2236
2254/* @[declare_mqttpropadd_authdata] */
2256 const char * authData,
2257 size_t authDataLength,
2258 const uint8_t * pOptionalMqttPacketType );
2259/* @[declare_mqttpropadd_authdata] */
2260
2277/* @[declare_mqttpropadd_payloadformat] */
2279 bool payloadFormat,
2280 const uint8_t * pOptionalMqttPacketType );
2281/* @[declare_mqttpropadd_payloadformat] */
2282
2299/* @[declare_mqttpropadd_messageexpiry] */
2301 uint32_t messageExpiry,
2302 const uint8_t * pOptionalMqttPacketType );
2303/* @[declare_mqttpropadd_messageexpiry] */
2304
2321/* @[declare_mqttpropadd_willdelayinterval] */
2323 uint32_t willDelayInterval,
2324 const uint8_t * pOptionalMqttPacketType );
2325/* @[declare_mqttpropadd_willdelayinterval] */
2326
2343/* @[declare_mqttpropadd_topicalias] */
2345 uint16_t topicAlias,
2346 const uint8_t * pOptionalMqttPacketType );
2347/* @[declare_mqttpropadd_topicalias] */
2348
2366/* @[declare_mqttpropadd_responsetopic] */
2368 const char * responseTopic,
2369 size_t responseTopicLength,
2370 const uint8_t * pOptionalMqttPacketType );
2371/* @[declare_mqttpropadd_responsetopic] */
2389/* @[declare_mqttpropadd_correlationdata] */
2391 const void * pCorrelationData,
2392 size_t correlationLength,
2393 const uint8_t * pOptionalMqttPacketType );
2394/* @[declare_mqttpropadd_correlationdata] */
2395
2413/* @[declare_mqttpropadd_contenttype] */
2415 const char * contentType,
2416 size_t contentTypeLength,
2417 const uint8_t * pOptionalMqttPacketType );
2418/* @[declare_mqttpropadd_contenttype] */
2419
2437/* @[declare_mqttpropadd_reasonstring] */
2439 const char * pReasonString,
2440 size_t reasonStringLength,
2441 const uint8_t * pOptionalMqttPacketType );
2442/* @[declare_mqttpropadd_reasonstring] */
2443
2456/* @[declare_mqtt_validatesubscribeproperties] */
2457MQTTStatus_t MQTT_ValidateSubscribeProperties( bool isSubscriptionIdAvailable,
2458 const MQTTPropBuilder_t * propBuilder );
2459/* @[declare_mqtt_validatesubscribeproperties] */
2460
2498 MQTTConnectionProperties_t * pConnectProperties );
2499
2522 const size_t * currentIndex,
2523 uint8_t * property );
2524
2591MQTTStatus_t MQTT_SkipNextProperty( const MQTTPropBuilder_t * pPropertyBuilder,
2592 size_t * currentIndex );
2593
2604/* @[declare_mqttpropget_userprop] */
2605MQTTStatus_t MQTTPropGet_UserProp( const MQTTPropBuilder_t * pPropertyBuilder,
2606 size_t * currentIndex,
2607 MQTTUserProperty_t * pUserProperty );
2608/* @[declare_mqttpropget_userprop] */
2609
2620/* @[declare_mqttpropget_sessionexpiry] */
2622 size_t * currentIndex,
2623 uint32_t * pSessionExpiry );
2624/* @[declare_mqttpropget_sessionexpiry] */
2625
2636/* @[declare_mqttpropget_receivemax] */
2637MQTTStatus_t MQTTPropGet_ReceiveMax( const MQTTPropBuilder_t * pPropertyBuilder,
2638 size_t * currentIndex,
2639 uint16_t * pReceiveMax );
2640/* @[declare_mqttpropget_receivemax] */
2641
2652/* @[declare_mqttpropget_maxqos] */
2653MQTTStatus_t MQTTPropGet_MaxQos( const MQTTPropBuilder_t * pPropertyBuilder,
2654 size_t * currentIndex,
2655 uint8_t * pMaxQos );
2656/* @[declare_mqttpropget_maxqos] */
2657
2668/* @[declare_mqttpropget_retainavailable] */
2670 size_t * currentIndex,
2671 uint8_t * pRetainAvailable );
2672/* @[declare_mqttpropget_retainavailable] */
2673
2684/* @[declare_mqttpropget_maxpacketsize] */
2686 size_t * currentIndex,
2687 uint32_t * pMaxPacketSize );
2688/* @[declare_mqttpropget_maxpacketsize] */
2689
2701/* @[declare_mqttpropget_assignedclientid] */
2703 size_t * currentIndex,
2704 const char ** pClientId,
2705 size_t * pClientIdLength );
2706/* @[declare_mqttpropget_assignedclientid] */
2707
2718/* @[declare_mqttpropget_topicaliasmax] */
2720 size_t * currentIndex,
2721 uint16_t * pTopicAliasMax );
2722/* @[declare_mqttpropget_topicaliasmax] */
2723
2735/* @[declare_mqttpropget_reasonstring] */
2737 size_t * currentIndex,
2738 const char ** pReasonString,
2739 size_t * pReasonStringLength );
2740/* @[declare_mqttpropget_reasonstring] */
2741
2752/* @[declare_mqttpropget_wildcardid] */
2753MQTTStatus_t MQTTPropGet_WildcardId( const MQTTPropBuilder_t * pPropertyBuilder,
2754 size_t * currentIndex,
2755 uint8_t * pWildcardAvailable );
2756/* @[declare_mqttpropget_wildcardid] */
2757
2768/* @[declare_mqttpropget_subsidavailable] */
2770 size_t * currentIndex,
2771 uint8_t * pSubsIdAvailable );
2772/* @[declare_mqttpropget_subsidavailable] */
2773
2784/* @[declare_mqttpropget_sharedsubavailable] */
2786 size_t * currentIndex,
2787 uint8_t * pSharedSubAvailable );
2788/* @[declare_mqttpropget_sharedsubavailable] */
2789
2800/* @[declare_mqttpropget_serverkeepalive] */
2802 size_t * currentIndex,
2803 uint16_t * pServerKeepAlive );
2804/* @[declare_mqttpropget_serverkeepalive] */
2805
2817/* @[declare_mqttpropget_responseinfo] */
2819 size_t * currentIndex,
2820 const char ** pResponseInfo,
2821 size_t * pResponseInfoLength );
2822/* @[declare_mqttpropget_responseinfo] */
2823
2835/* @[declare_mqttpropget_serverref] */
2836MQTTStatus_t MQTTPropGet_ServerRef( const MQTTPropBuilder_t * pPropertyBuilder,
2837 size_t * currentIndex,
2838 const char ** pServerRef,
2839 size_t * pServerRefLength );
2840/* @[declare_mqttpropget_serverref] */
2841
2853/* @[declare_mqttpropget_authmethod] */
2854MQTTStatus_t MQTTPropGet_AuthMethod( const MQTTPropBuilder_t * pPropertyBuilder,
2855 size_t * currentIndex,
2856 const char ** pAuthMethod,
2857 size_t * pAuthMethodLen );
2858/* @[declare_mqttpropget_authmethod] */
2859
2871/* @[declare_mqttpropget_authdata] */
2872MQTTStatus_t MQTTPropGet_AuthData( const MQTTPropBuilder_t * pPropertyBuilder,
2873 size_t * currentIndex,
2874 const char ** pAuthData,
2875 size_t * pAuthDataLen );
2876/* @[declare_mqttpropget_authdata] */
2877
2888/* @[declare_mqttpropget_payloadformatindicator] */
2890 size_t * currentIndex,
2891 uint8_t * pPayloadFormat );
2892/* @[declare_mqttpropget_payloadformatindicator] */
2893
2904/* @[declare_mqttpropget_messageexpiryinterval] */
2906 size_t * currentIndex,
2907 uint32_t * pMessageExpiry );
2908/* @[declare_mqttpropget_messageexpiryinterval] */
2909
2920/* @[declare_mqttpropget_topicalias] */
2921MQTTStatus_t MQTTPropGet_TopicAlias( const MQTTPropBuilder_t * pPropertyBuilder,
2922 size_t * currentIndex,
2923 uint16_t * pTopicAlias );
2924/* @[declare_mqttpropget_topicalias] */
2925
2937/* @[declare_mqttpropget_responsetopic] */
2939 size_t * currentIndex,
2940 const char ** pResponseTopic,
2941 size_t * pResponseTopicLength );
2942/* @[declare_mqttpropget_responsetopic] */
2943
2955/* @[declare_mqttpropget_correlationdata] */
2957 size_t * currentIndex,
2958 const char ** pCorrelationData,
2959 size_t * pCorrelationDataLength );
2960/* @[declare_mqttpropget_correlationdata] */
2961
2972/* @[declare_mqttpropget_subscriptionid] */
2974 size_t * currentIndex,
2975 uint32_t * pSubscriptionId );
2976/* @[declare_mqttpropget_subscriptionid] */
2977
2994/* @[declare_mqttpropget_contenttype] */
2996 size_t * currentIndex,
2997 const char ** pContentType,
2998 size_t * pContentTypeLength );
2999/* @[declare_mqttpropget_contenttype] */
3000
3015/* @[declare_mqtt_validatepublishproperties] */
3016MQTTStatus_t MQTT_ValidatePublishProperties( uint16_t serverTopicAliasMax,
3017 const MQTTPropBuilder_t * propBuilder,
3018 uint16_t * topicAlias );
3019/* @[declare_mqtt_validatepublishproperties] */
3020
3058/* @[declare_mqtt_validatepublishparams] */
3060 uint8_t retainAvailable,
3061 uint8_t maxQos,
3062 uint16_t topicAlias,
3063 uint32_t maxPacketSize );
3064/* @[declare_mqtt_validatepublishparams] */
3065
3074/* @[declare_mqtt_validatepublishackproperties] */
3076/* @[declare_mqtt_validatepublishackproperties] */
3077
3086/* @[declare_mqtt_validateunsubscribeproperties] */
3088/* @[declare_mqtt_validateunsubscribeproperties] */
3089
3127/* @[declare_mqtt_getackpacketsize] */
3128MQTTStatus_t MQTT_GetAckPacketSize( uint32_t * pRemainingLength,
3129 uint32_t * pPacketSize,
3130 uint32_t maxPacketSize,
3131 size_t ackPropertyLength );
3132/* @[declare_mqtt_getackpacketsize] */
3133
3146/* @[declare_mqtt_validatedisconnectproperties] */
3147MQTTStatus_t MQTT_ValidateDisconnectProperties( uint32_t connectSessionExpiry,
3148 const MQTTPropBuilder_t * pPropertyBuilder );
3149/* @[declare_mqtt_validatedisconnectproperties] */
3150
3188/* @[declare_mqtt_deserializedisconnect] */
3190 uint32_t maxPacketSize,
3191 MQTTReasonCodeInfo_t * pDisconnectInfo,
3192 MQTTPropBuilder_t * pPropBuffer );
3193/* @[declare_mqtt_deserializedisconnect] */
3194
3195/* *INDENT-OFF* */
3196#ifdef __cplusplus
3197 }
3198#endif
3199/* *INDENT-ON* */
3200
3201#endif /* ifndef CORE_MQTT_SERIALIZER_H */
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:3445
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:3906
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:5570
MQTTStatus_t MQTTPropertyBuilder_Init(MQTTPropBuilder_t *pPropertyBuilder, uint8_t *buffer, size_t length)
Initialize the property builder.
Definition: core_mqtt_serializer.c:5029
MQTTStatus_t MQTT_ValidateSubscribeProperties(bool isSubscriptionIdAvailable, const MQTTPropBuilder_t *propBuilder)
Validates the properties of a SUBSCRIBE packet.
Definition: core_mqtt_serializer.c:5474
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:4909
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:3527
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:4610
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:5861
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:4071
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:916
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:5792
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:3713
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:4732
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:5936
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:5419
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:5066
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:4662
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:3114
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:4938
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:4844
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:4350
MQTTStatus_t MQTT_GetPingreqPacketSize(uint32_t *pPacketSize)
Get the size of an MQTT PINGREQ packet.
Definition: core_mqtt_serializer.c:4547
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:4280
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:3966
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:4461
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:3002
MQTTStatus_t MQTT_InitConnect(MQTTConnectionProperties_t *pConnectProperties)
Initialize an MQTTConnectionProperties_t.
Definition: core_mqtt_serializer.c:4996
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:3589
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:5671
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:3837
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:5731
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:3781
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:4567
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
static const uint8_t MQTT_PACKET_TYPE_SUBSCRIBE_VAL
SUBSCRIBE value for property validation.
Definition: core_mqtt_serializer.h:103
static const uint8_t MQTT_PACKET_TYPE_UNSUBSCRIBE_VAL
UNSUBSCRIBE value for property validation.
Definition: core_mqtt_serializer.h:108
static const uint8_t MQTT_PACKET_TYPE_DISCONNECT_VAL
DISCONNECT value for property validation.
Definition: core_mqtt_serializer.h:113
static const uint8_t MQTT_PACKET_TYPE_CONNECT_VAL
Convenience pointers for the pOptionalMqttPacketType parameter of the MQTTPropAdd_* functions.
Definition: core_mqtt_serializer.h:93
static const uint8_t MQTT_PACKET_TYPE_PUBLISH_VAL
PUBLISH value for property validation.
Definition: core_mqtt_serializer.h:98
MQTTRetainHandling_t
Retain Handling types.
Definition: core_mqtt_serializer.h:394
MQTTSuccessFailReasonCode_t
MQTT reason codes.
Definition: core_mqtt_serializer.h:637
MQTTSubscriptionType_t
MQTT Subscription packet types.
Definition: core_mqtt_serializer.h:780
MQTTStatus_t
Return codes from MQTT functions.
Definition: core_mqtt_serializer.h:293
MQTTQoS_t
MQTT Quality of Service values.
Definition: core_mqtt_serializer.h:324
@ retainSendOnSubIfNotPresent
Definition: core_mqtt_serializer.h:396
@ retainDoNotSendonSub
Definition: core_mqtt_serializer.h:397
@ retainSendOnSub
Definition: core_mqtt_serializer.h:395
@ MQTT_REASON_CONNACK_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:685
@ MQTT_REASON_PUBACK_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:646
@ MQTT_REASON_DISCONNECT_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:736
@ MQTT_REASON_PUBREC_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:656
@ MQTT_REASON_PUBREL_SUCCESS
Definition: core_mqtt_serializer.h:661
@ MQTT_REASON_PUBREC_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:652
@ MQTT_REASON_DISCONNECT_SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:744
@ MQTT_REASON_PUBREC_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:655
@ MQTT_REASON_CONNACK_CONNECTION_RATE_EXCEEDED
Definition: core_mqtt_serializer.h:690
@ MQTT_REASON_CONNACK_UNSUPPORTED_PROTOCOL_VERSION
Definition: core_mqtt_serializer.h:674
@ MQTT_REASON_UNSUBACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:710
@ MQTT_REASON_CONNACK_CLIENT_IDENTIFIER_NOT_VALID
Definition: core_mqtt_serializer.h:675
@ MQTT_REASON_PUBREC_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:657
@ MQTT_REASON_DISCONNECT_MALFORMED_PACKET
Definition: core_mqtt_serializer.h:719
@ MQTT_REASON_DISCONNECT_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:721
@ MQTT_REASON_CONNACK_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:682
@ MQTT_REASON_PUBREL_PACKET_IDENTIFIER_NOT_FOUND
Definition: core_mqtt_serializer.h:662
@ MQTT_REASON_PUBCOMP_SUCCESS
Definition: core_mqtt_serializer.h:665
@ MQTT_REASON_UNSUBACK_SUCCESS
Definition: core_mqtt_serializer.h:707
@ MQTT_REASON_PUBCOMP_PACKET_IDENTIFIER_NOT_FOUND
Definition: core_mqtt_serializer.h:666
@ MQTT_REASON_UNSUBACK_TOPIC_FILTER_INVALID
Definition: core_mqtt_serializer.h:712
@ MQTT_REASON_CONNACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:670
@ MQTT_REASON_DISCONNECT_MAXIMUM_CONNECT_TIME
Definition: core_mqtt_serializer.h:743
@ MQTT_REASON_SUBACK_SUBSCRIPTION_IDENTIFIERS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:703
@ MQTT_REASON_DISCONNECT_USE_ANOTHER_SERVER
Definition: core_mqtt_serializer.h:739
@ MQTT_REASON_CONNACK_SERVER_UNAVAILABLE
Definition: core_mqtt_serializer.h:678
@ MQTT_REASON_DISCONNECT_CONNECTION_RATE_EXCEEDED
Definition: core_mqtt_serializer.h:742
@ MQTT_REASON_DISCONNECT_ADMINISTRATIVE_ACTION
Definition: core_mqtt_serializer.h:735
@ MQTT_REASON_UNSUBACK_NO_SUBSCRIPTION_EXISTED
Definition: core_mqtt_serializer.h:708
@ MQTT_REASON_CONNACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:677
@ MQTT_REASON_DISCONNECT_NORMAL_DISCONNECTION
Definition: core_mqtt_serializer.h:716
@ MQTT_REASON_DISCONNECT_SESSION_TAKEN_OVER
Definition: core_mqtt_serializer.h:727
@ MQTT_REASON_DISCONNECT_KEEP_ALIVE_TIMEOUT
Definition: core_mqtt_serializer.h:726
@ MQTT_REASON_SUBACK_TOPIC_FILTER_INVALID
Definition: core_mqtt_serializer.h:699
@ MQTT_REASON_DISCONNECT_TOPIC_FILTER_INVALID
Definition: core_mqtt_serializer.h:728
@ MQTT_REASON_SUBACK_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:700
@ MQTT_REASON_SUBACK_GRANTED_QOS0
Definition: core_mqtt_serializer.h:693
@ MQTT_REASON_PUBACK_NO_MATCHING_SUBSCRIBERS
Definition: core_mqtt_serializer.h:640
@ MQTT_REASON_UNSUBACK_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:713
@ MQTT_REASON_CONNACK_PACKET_TOO_LARGE
Definition: core_mqtt_serializer.h:683
@ MQTT_REASON_DISCONNECT_SERVER_MOVED
Definition: core_mqtt_serializer.h:740
@ MQTT_REASON_DISCONNECT_RECEIVE_MAXIMUM_EXCEEDED
Definition: core_mqtt_serializer.h:730
@ MQTT_REASON_SUBACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:698
@ MQTT_REASON_PUBACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:642
@ MQTT_REASON_DISCONNECT_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:718
@ MQTT_REASON_DISCONNECT_PROTOCOL_ERROR
Definition: core_mqtt_serializer.h:720
@ MQTT_REASON_PUBACK_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:644
@ MQTT_REASON_PUBREC_SUCCESS
Definition: core_mqtt_serializer.h:650
@ MQTT_REASON_PUBREC_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:654
@ MQTT_REASON_PUBACK_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:647
@ MQTT_REASON_DISCONNECT_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:745
@ MQTT_REASON_CONNACK_USE_ANOTHER_SERVER
Definition: core_mqtt_serializer.h:688
@ MQTT_REASON_PUBACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:641
@ MQTT_REASON_PUBREC_PAYLOAD_FORMAT_INVALID
Definition: core_mqtt_serializer.h:658
@ MQTT_REASON_PUBACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:643
@ MQTT_REASON_CONNACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:673
@ MQTT_REASON_CONNACK_SUCCESS
Definition: core_mqtt_serializer.h:669
@ MQTT_INVALID_REASON_CODE
Invalid reason code.
Definition: core_mqtt_serializer.h:747
@ MQTT_REASON_DISCONNECT_TOPIC_ALIAS_INVALID
Definition: core_mqtt_serializer.h:731
@ MQTT_REASON_PUBREC_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:653
@ MQTT_REASON_DISCONNECT_QOS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:738
@ MQTT_REASON_CONNACK_BAD_AUTHENTICATION_METHOD
Definition: core_mqtt_serializer.h:681
@ MQTT_REASON_DISCONNECT_DISCONNECT_WITH_WILL_MESSAGE
Definition: core_mqtt_serializer.h:717
@ MQTT_REASON_CONNACK_RETAIN_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:686
@ MQTT_REASON_CONNACK_SERVER_MOVED
Definition: core_mqtt_serializer.h:689
@ MQTT_REASON_SUBACK_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:701
@ MQTT_REASON_SUBACK_GRANTED_QOS1
Definition: core_mqtt_serializer.h:694
@ MQTT_REASON_DISCONNECT_SERVER_SHUTTING_DOWN
Definition: core_mqtt_serializer.h:724
@ MQTT_REASON_DISCONNECT_RETAIN_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:737
@ MQTT_REASON_DISCONNECT_SERVER_BUSY
Definition: core_mqtt_serializer.h:723
@ MQTT_REASON_PUBREC_NO_MATCHING_SUBSCRIBERS
Definition: core_mqtt_serializer.h:651
@ MQTT_REASON_CONNACK_PROTOCOL_ERROR
Definition: core_mqtt_serializer.h:672
@ MQTT_REASON_CONNACK_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:684
@ MQTT_REASON_SUBACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:696
@ MQTT_REASON_DISCONNECT_TOPIC_NAME_INVALID
Definition: core_mqtt_serializer.h:729
@ MQTT_REASON_CONNACK_QOS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:687
@ MQTT_REASON_DISCONNECT_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:741
@ MQTT_REASON_DISCONNECT_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:722
@ MQTT_REASON_DISCONNECT_BAD_AUTHENTICATION_METHOD
Definition: core_mqtt_serializer.h:725
@ MQTT_REASON_DISCONNECT_PACKET_TOO_LARGE
Definition: core_mqtt_serializer.h:732
@ MQTT_REASON_CONNACK_MALFORMED_PACKET
Definition: core_mqtt_serializer.h:671
@ MQTT_REASON_SUBACK_GRANTED_QOS2
Definition: core_mqtt_serializer.h:695
@ MQTT_REASON_SUBACK_WILDCARD_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:704
@ MQTT_REASON_CONNACK_BANNED
Definition: core_mqtt_serializer.h:680
@ MQTT_REASON_SUBACK_SHARED_SUBSCRIPTIONS_NOT_SUPPORTED
Definition: core_mqtt_serializer.h:702
@ MQTT_REASON_PUBACK_SUCCESS
Definition: core_mqtt_serializer.h:639
@ MQTT_REASON_UNSUBACK_UNSPECIFIED_ERROR
Definition: core_mqtt_serializer.h:709
@ MQTT_REASON_DISCONNECT_MESSAGE_RATE_TOO_HIGH
Definition: core_mqtt_serializer.h:733
@ MQTT_REASON_CONNACK_SERVER_BUSY
Definition: core_mqtt_serializer.h:679
@ MQTT_REASON_PUBACK_PACKET_IDENTIFIER_IN_USE
Definition: core_mqtt_serializer.h:645
@ MQTT_REASON_CONNACK_BAD_USER_NAME_OR_PASSWORD
Definition: core_mqtt_serializer.h:676
@ MQTT_REASON_UNSUBACK_NOT_AUTHORIZED
Definition: core_mqtt_serializer.h:711
@ MQTT_REASON_DISCONNECT_QUOTA_EXCEEDED
Definition: core_mqtt_serializer.h:734
@ MQTT_REASON_SUBACK_IMPLEMENTATION_SPECIFIC_ERROR
Definition: core_mqtt_serializer.h:697
@ MQTT_TYPE_UNSUBSCRIBE
The type is a UNSUBSCRIBE packet.
Definition: core_mqtt_serializer.h:782
@ MQTT_TYPE_SUBSCRIBE
The type is a SUBSCRIBE packet.
Definition: core_mqtt_serializer.h:781
@ MQTTStatusNotConnected
Definition: core_mqtt_serializer.h:310
@ MQTTKeepAliveTimeout
Definition: core_mqtt_serializer.h:304
@ MQTTStatusDisconnectPending
Definition: core_mqtt_serializer.h:311
@ MQTTServerRefused
Definition: core_mqtt_serializer.h:300
@ MQTTPublishRetrieveFailed
Definition: core_mqtt_serializer.h:314
@ MQTTSuccess
Definition: core_mqtt_serializer.h:294
@ MQTTPublishStoreFailed
Definition: core_mqtt_serializer.h:312
@ MQTTNoDataAvailable
Definition: core_mqtt_serializer.h:301
@ MQTTIllegalState
Definition: core_mqtt_serializer.h:302
@ MQTTStateCollision
Definition: core_mqtt_serializer.h:303
@ MQTTEventCallbackFailed
Definition: core_mqtt_serializer.h:316
@ MQTTStatusConnected
Definition: core_mqtt_serializer.h:309
@ MQTTRecvFailed
Definition: core_mqtt_serializer.h:298
@ MQTTBadParameter
Definition: core_mqtt_serializer.h:295
@ MQTTBadResponse
Definition: core_mqtt_serializer.h:299
@ MQTTNeedMoreBytes
Definition: core_mqtt_serializer.h:305
@ MQTTNoMemory
Definition: core_mqtt_serializer.h:296
@ MQTTEndOfProperties
Definition: core_mqtt_serializer.h:308
@ MQTTSendFailed
Definition: core_mqtt_serializer.h:297
@ MQTTQoS1
Definition: core_mqtt_serializer.h:326
@ MQTTQoS2
Definition: core_mqtt_serializer.h:327
@ MQTTQoS0
Definition: core_mqtt_serializer.h:325
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:348
const char * pClientIdentifier
MQTT client identifier. Must be unique per client.
Definition: core_mqtt_serializer.h:362
size_t clientIdentifierLength
Length of the client identifier.
Definition: core_mqtt_serializer.h:367
const char * pUserName
MQTT user name. Set to NULL if not used.
Definition: core_mqtt_serializer.h:372
bool cleanSession
Whether to establish a new, clean session or resume a previous session.
Definition: core_mqtt_serializer.h:352
size_t userNameLength
Length of MQTT user name. Set to 0 if not used.
Definition: core_mqtt_serializer.h:377
uint16_t keepAliveSeconds
MQTT keep alive period.
Definition: core_mqtt_serializer.h:357
const char * pPassword
MQTT password. Set to NULL if not used.
Definition: core_mqtt_serializer.h:382
size_t passwordLength
Length of MQTT password. Set to 0 if not used.
Definition: core_mqtt_serializer.h:387
Struct to hold connect and connack properties.
Definition: core_mqtt_serializer.h:550
bool requestResponseInfo
A value of 0 indicates that the Server MUST NOT return Response Information.
Definition: core_mqtt_serializer.h:574
uint16_t serverTopicAliasMax
Two Byte Integer representing the Topic Alias Maximum value.
Definition: core_mqtt_serializer.h:605
uint8_t isSharedAvailable
Whether the Server supports Shared Subscription.
Definition: core_mqtt_serializer.h:620
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:580
uint8_t isSubscriptionIdAvailable
Whether the Server supports Subscription Identifiers.
Definition: core_mqtt_serializer.h:615
uint8_t serverMaxQos
Max qos supported by the server.
Definition: core_mqtt_serializer.h:590
uint16_t receiveMax
Maximum number of unacknowledged PUBLISH packets client is willing to receive.
Definition: core_mqtt_serializer.h:559
uint8_t retainAvailable
Byte declares whether the Server supports retained messages.
Definition: core_mqtt_serializer.h:595
uint16_t serverKeepAlive
Keep Alive value given by the server.
Definition: core_mqtt_serializer.h:625
uint32_t serverMaxPacketSize
Four Byte Integer representing the Maximum Packet Size the Server is willing to accept.
Definition: core_mqtt_serializer.h:600
uint16_t topicAliasMax
Two Byte Integer representing the Topic Alias Maximum value.
Definition: core_mqtt_serializer.h:569
uint32_t sessionExpiry
Four Byte Integer representing the Session Expiry Interval in seconds.
Definition: core_mqtt_serializer.h:554
uint32_t maxPacketSize
Four Byte Integer representing the Maximum Packet Size the Client is willing to accept.
Definition: core_mqtt_serializer.h:564
uint8_t isWildcardAvailable
Whether wildcard subscription is available.
Definition: core_mqtt_serializer.h:610
uint16_t serverReceiveMax
Maximum number of unacknowledged PUBLISH packets server is willing to receive.
Definition: core_mqtt_serializer.h:585
Buffer passed to MQTT library.
Definition: core_mqtt_serializer.h:338
size_t size
Size of buffer.
Definition: core_mqtt_serializer.h:340
uint8_t * pBuffer
Pointer to buffer.
Definition: core_mqtt_serializer.h:339
MQTT incoming packet parameters.
Definition: core_mqtt_serializer.h:497
uint32_t remainingLength
Length of remaining serialized data.
Definition: core_mqtt_serializer.h:511
uint8_t type
Type of incoming MQTT packet.
Definition: core_mqtt_serializer.h:501
size_t headerLength
The length of the MQTT header including the type and length.
Definition: core_mqtt_serializer.h:516
uint8_t * pRemainingData
Remaining serialized data in the MQTT packet.
Definition: core_mqtt_serializer.h:506
Property builder for MQTT packets.
Definition: core_mqtt_serializer.h:524
size_t currentIndex
Current position in the buffer where next property will be written.
Definition: core_mqtt_serializer.h:527
uint32_t fieldSet
Bitfield tracking which properties have been added.
Definition: core_mqtt_serializer.h:528
uint8_t * pBuffer
Pointer to the buffer for storing properties.
Definition: core_mqtt_serializer.h:525
size_t bufferLength
Total length of the buffer available for properties.
Definition: core_mqtt_serializer.h:526
MQTT PUBLISH packet parameters.
Definition: core_mqtt_serializer.h:449
MQTTQoS_t qos
Quality of Service for message.
Definition: core_mqtt_serializer.h:453
bool retain
Whether this is a retained message.
Definition: core_mqtt_serializer.h:458
size_t payloadLength
Message payload length.
Definition: core_mqtt_serializer.h:483
size_t topicNameLength
Length of topic name.
Definition: core_mqtt_serializer.h:473
bool dup
Whether this is a duplicate publish message.
Definition: core_mqtt_serializer.h:463
const char * pTopicName
Topic name on which the message is published.
Definition: core_mqtt_serializer.h:468
size_t propertyLength
Length of the properties.
Definition: core_mqtt_serializer.h:488
const void * pPayload
Message payload.
Definition: core_mqtt_serializer.h:478
Struct to hold reason codes.
Definition: core_mqtt_serializer.h:536
size_t reasonCodeLength
Length of the reason code array.
Definition: core_mqtt_serializer.h:541
const uint8_t * reasonCode
Pointer to the reason code array.
Definition: core_mqtt_serializer.h:538
MQTT SUBSCRIBE packet parameters.
Definition: core_mqtt_serializer.h:405
bool retainAsPublishedOption
If true, Application Messages forwarded using this subscription keep the RETAIN flag they were publis...
Definition: core_mqtt_serializer.h:434
size_t topicFilterLength
Length of subscription topic filter - unsigned long.
Definition: core_mqtt_serializer.h:419
MQTTQoS_t qos
Quality of Service for subscription. Include protocol error of qos > 2.
Definition: core_mqtt_serializer.h:409
MQTTRetainHandling_t retainHandlingOption
Specifies whether retained messages are sent when the subscription is established.
Definition: core_mqtt_serializer.h:440
bool noLocalOption
no local option for subscription. Include protocol error if noLocalOption = 1 in a shared subscriptio...
Definition: core_mqtt_serializer.h:428
const char * pTopicFilter
Topic filter to subscribe to.
Definition: core_mqtt_serializer.h:414
Struct to hold user property.
Definition: core_mqtt_serializer.h:756
const char * pValue
value.
Definition: core_mqtt_serializer.h:768
size_t keyLength
Length of the key.
Definition: core_mqtt_serializer.h:764
const char * pKey
key.
Definition: core_mqtt_serializer.h:760
size_t valueLength
Length of the value.
Definition: core_mqtt_serializer.h:772
Transport interface definitions to send and receive data over the network.