coreMQTT v5.0.0
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 )
74#define MQTT_PUBLISH_ACK_PACKET_SIZE ( 4UL )
75
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 )
83/* CONNECT PROPERTIES. */
84
88#define MQTT_SESSION_EXPIRY_ID ( 0x11U )
89
93#define MQTT_RECEIVE_MAX_ID ( 0x21U )
94
98#define MQTT_MAX_PACKET_SIZE_ID ( 0x27U )
99
103#define MQTT_TOPIC_ALIAS_MAX_ID ( 0x22U )
104
108#define MQTT_REQUEST_RESPONSE_ID ( 0x19U )
109
113#define MQTT_REQUEST_PROBLEM_ID ( 0x17U )
114
118#define MQTT_USER_PROPERTY_ID ( 0x26U )
119
123#define MQTT_AUTH_METHOD_ID ( 0x15U )
124
128#define MQTT_AUTH_DATA_ID ( 0x16U )
129
130
131/* Publish properties. */
132
136#define MQTT_WILL_DELAY_ID ( 0x18U )
137
141#define MQTT_PAYLOAD_FORMAT_ID ( 0x01U )
142
146#define MQTT_MSG_EXPIRY_ID ( 0x02U )
147
151#define MQTT_CONTENT_TYPE_ID ( 0x03U )
152
156#define MQTT_RESPONSE_TOPIC_ID ( 0x08U )
157
161#define MQTT_CORRELATION_DATA_ID ( 0x09U )
162
166#define MQTT_TOPIC_ALIAS_ID ( 0x23U )
167
168
169/* CONNACK PROPERTIES. */
170
174#define MQTT_MAX_QOS_ID ( 0x24U )
175
179#define MQTT_RETAIN_AVAILABLE_ID ( 0x25U )
180
184#define MQTT_ASSIGNED_CLIENT_ID ( 0x12U )
185
189#define MQTT_REASON_STRING_ID ( 0x1FU )
190
194#define MQTT_WILDCARD_ID ( 0x28U )
195
199#define MQTT_SUB_AVAILABLE_ID ( 0x29U )
200
204#define MQTT_SHARED_SUB_ID ( 0x2AU )
205
209#define MQTT_SERVER_KEEP_ALIVE_ID ( 0x13U )
210
215#define MQTT_RESPONSE_INFO_ID ( 0x1AU )
216
220#define MQTT_SERVER_REF_ID ( 0x1CU )
221
225#define MQTT_SUBSCRIPTION_ID_ID ( 0x0BU )
226
227/* Structures defined in this file. */
228struct MQTTFixedBuffer;
229struct MQTTConnectInfo;
230struct MQTTSubscribeInfo;
231struct MQTTPublishInfo;
232struct MQTTPacketInfo;
233
238typedef enum MQTTStatus
239{
264
269typedef enum MQTTQoS
270{
273 MQTTQoS2 = 2
275
283typedef struct MQTTFixedBuffer
284{
285 uint8_t * pBuffer;
286 size_t size;
288
293typedef struct MQTTConnectInfo
294{
299
304
308 const char * pClientIdentifier;
309
314
318 const char * pUserName;
319
324
328 const char * pPassword;
329
335
340typedef enum MQTTRetainHandling{
345
350typedef struct MQTTSubscribeInfo
351{
356
360 const char * pTopicFilter;
361
375
381
387
389
394typedef struct MQTTPublishInfo
395{
400
404 bool retain;
405
409 bool dup;
410
414 const char * pTopicName;
415
420
424 const void * pPayload;
425
430
435
437
442typedef struct MQTTPacketInfo
443{
447 uint8_t type;
448
452 uint8_t * pRemainingData;
453
458
464
469typedef struct MQTTPropBuilder
470{
471 uint8_t * pBuffer;
474 uint32_t fieldSet;
476
481typedef struct MQTTReasonCodeInfo
482{
484 const uint8_t * reasonCode;
485
488
490
495typedef struct MQTTConnectProperties
496{
501
505 uint16_t receiveMax;
506
511
516
521
527
532
537
542
547
552
557
562
567
572
573
575
582typedef enum MQTTSuccessFailReasonCode
583{
584 /* PUBACK reason codes */
595 /* PUBREC reason codes */
606 /* PUBREL reason codes */
610 /* PUBCOMP reason codes */
614 /* CONNACK reason codes */
638 /* SUBACK reason codes */
652 /* UNSUBACK reason codes */
661 /* DISCONNECT reason codes */
696
701typedef struct MQTTUserProperty
702{
706 const char * pKey;
710 size_t keyLength;
714 const char * pValue;
720
725typedef enum MQTTSubscriptionType
726{
730
791/* @[declare_mqtt_getconnectpacketsize] */
793 const MQTTPublishInfo_t * pWillInfo,
794 const MQTTPropBuilder_t * pConnectProperties,
795 const MQTTPropBuilder_t * pWillProperties,
796 uint32_t * pRemainingLength,
797 uint32_t * pPacketSize );
798/* @[declare_mqtt_getconnectpacketsize] */
799
862/* @[declare_mqtt_serializeconnect] */
864 const MQTTPublishInfo_t * pWillInfo,
865 const MQTTPropBuilder_t * pConnectProperties,
866 const MQTTPropBuilder_t * pWillProperties,
867 uint32_t remainingLength,
868 const MQTTFixedBuffer_t * pFixedBuffer );
869/* @[declare_mqtt_serializeconnect] */
870
937/* @[declare_mqtt_getsubscribepacketsize] */
939 size_t subscriptionCount,
940 const MQTTPropBuilder_t * pSubscribeProperties,
941 uint32_t * pRemainingLength,
942 uint32_t * pPacketSize,
943 uint32_t maxPacketSize );
944/* @[declare_mqtt_getsubscribepacketsize] */
945
1011/* @[declare_mqtt_serializesubscribe] */
1013 size_t subscriptionCount,
1014 const MQTTPropBuilder_t * pSubscribeProperties,
1015 uint16_t packetId,
1016 uint32_t remainingLength,
1017 const MQTTFixedBuffer_t * pFixedBuffer );
1018/* @[declare_mqtt_serializesubscribe] */
1019
1076/* @[declare_mqtt_getunsubscribepacketsize] */
1078 size_t subscriptionCount,
1079 const MQTTPropBuilder_t * pUnsubscribeProperties,
1080 uint32_t * pRemainingLength,
1081 uint32_t * pPacketSize,
1082 uint32_t maxPacketSize );
1083/* @[declare_mqtt_getunsubscribepacketsize] */
1084
1159/* @[declare_mqtt_serializeunsubscribe] */
1161 size_t subscriptionCount,
1162 const MQTTPropBuilder_t * pUnsubscribeProperties,
1163 uint16_t packetId,
1164 uint32_t remainingLength,
1165 const MQTTFixedBuffer_t * pFixedBuffer );
1166/* @[declare_mqtt_serializeunsubscribe] */
1167
1227/* @[declare_mqtt_getpublishpacketsize] */
1229 const MQTTPropBuilder_t * pPublishProperties,
1230 uint32_t * pRemainingLength,
1231 uint32_t * pPacketSize,
1232 uint32_t maxPacketSize );
1233/* @[declare_mqtt_getpublishpacketsize] */
1234
1301/* @[declare_mqtt_serializepublish] */
1303 const MQTTPropBuilder_t * pPublishProperties,
1304 uint16_t packetId,
1305 uint32_t remainingLength,
1306 const MQTTFixedBuffer_t * pFixedBuffer );
1307/* @[declare_mqtt_serializepublish] */
1308
1322/* @[declare_mqtt_serializepublishheaderwithouttopic] */
1324 uint32_t remainingLength,
1325 uint8_t * pBuffer,
1326 size_t * headerSize );
1327/* @[declare_mqtt_serializepublishheaderwithouttopic] */
1328
1406/* @[declare_mqtt_serializepublishheader] */
1408 const MQTTPropBuilder_t * pPublishProperties,
1409 uint16_t packetId,
1410 uint32_t remainingLength,
1411 const MQTTFixedBuffer_t * pFixedBuffer,
1412 size_t * pHeaderSize );
1413/* @[declare_mqtt_serializepublishheader] */
1414
1461/* @[declare_mqtt_serializeack] */
1463 uint8_t packetType,
1464 uint16_t packetId,
1465 const MQTTPropBuilder_t * pAckProperties,
1466 const MQTTSuccessFailReasonCode_t * pReasonCode );
1467/* @[declare_mqtt_serializeack] */
1468
1506/* @[declare_mqtt_getdisconnectpacketsize] */
1507MQTTStatus_t MQTT_GetDisconnectPacketSize( const MQTTPropBuilder_t * pDisconnectProperties,
1508 uint32_t * pRemainingLength,
1509 uint32_t * pPacketSize,
1510 uint32_t maxPacketSize,
1511 const MQTTSuccessFailReasonCode_t * pReasonCode );
1512/* @[declare_mqtt_getdisconnectpacketsize] */
1513
1568/* @[declare_mqtt_serializedisconnect] */
1569MQTTStatus_t MQTT_SerializeDisconnect( const MQTTPropBuilder_t * pDisconnectProperties,
1570 const MQTTSuccessFailReasonCode_t * pReasonCode,
1571 uint32_t remainingLength,
1572 const MQTTFixedBuffer_t * pFixedBuffer );
1573/* @[declare_mqtt_serializedisconnect] */
1574
1599/* @[declare_mqtt_getpingreqpacketsize] */
1600MQTTStatus_t MQTT_GetPingreqPacketSize( uint32_t * pPacketSize );
1601/* @[declare_mqtt_getpingreqpacketsize] */
1602
1640/* @[declare_mqtt_serializepingreq] */
1642/* @[declare_mqtt_serializepingreq] */
1643
1711/* @[declare_mqtt_deserializepublish] */
1713 uint16_t * pPacketId,
1714 MQTTPublishInfo_t * pPublishInfo,
1715 MQTTPropBuilder_t * propBuffer,
1716 uint32_t maxPacketSize,
1717 uint16_t topicAliasMax );
1718/* @[declare_mqtt_deserializepublish] */
1719
1764/* @[declare_mqtt_deserializeack] */
1765MQTTStatus_t MQTT_DeserializeAck( const MQTTPacketInfo_t * pIncomingPacket,
1766 uint16_t * pPacketId,
1767 MQTTReasonCodeInfo_t * pReasonCode,
1768 MQTTPropBuilder_t * pPropBuffer,
1769 const MQTTConnectionProperties_t * pConnectProperties );
1770/* @[declare_mqtt_deserializeack] */
1771
1784/* @[declare_mqtt_deserializeconnack] */
1786 bool * pSessionPresent,
1787 MQTTPropBuilder_t * pPropBuffer,
1788 MQTTConnectionProperties_t * pConnectProperties );
1789/* @[declare_mqtt_deserializeconnack] */
1790
1851/* @[declare_mqtt_getincomingpackettypeandlength] */
1853 NetworkContext_t * pNetworkContext,
1854 MQTTPacketInfo_t * pIncomingPacket );
1855/* @[declare_mqtt_getincomingpackettypeandlength] */
1856
1875 /* @[declare_mqtt_processincomingpackettypeandlength] */
1877 const size_t * pIndex,
1878 MQTTPacketInfo_t * pIncomingPacket );
1879/* @[declare_mqtt_processincomingpackettypeandlength] */
1880
1890 /* @[declare_mqtt_updateduplicatepublishflag] */
1891MQTTStatus_t MQTT_UpdateDuplicatePublishFlag( uint8_t * pHeader, bool set );
1892/* @[declare_mqtt_updateduplicatepublishflag] */
1893
1908/* @[declare_mqtt_initconnect] */
1910/* @[declare_mqtt_initconnect] */
1911
1923/* @[declare_mqttpropertybuilder_init] */
1925 uint8_t * buffer,
1926 size_t length );
1927/* @[declare_mqttpropertybuilder_init] */
1928
1937/* @[declare_mqtt_validatewillproperties] */
1939/* @[declare_mqtt_validatewillproperties] */
1940
1941
1954/* @[declare_mqtt_validateconnectproperties] */
1956 bool * isRequestProblemInfoSet,
1957 uint32_t * pPacketMaxSizeValue );
1958/* @[declare_mqtt_validateconnectproperties] */
1959
2000/* @[declare_mqttpropadd_subscriptionid] */
2002 uint32_t subscriptionId,
2003 const uint8_t * pOptionalMqttPacketType );
2004/* @[declare_mqttpropadd_subscriptionid] */
2005
2022/* @[declare_mqttpropadd_userprop] */
2024 const MQTTUserProperty_t * userProperty,
2025 const uint8_t * pOptionalMqttPacketType );
2026/* @[declare_mqttpropadd_userprop] */
2027
2043/* @[declare_mqttpropadd_sessionexpiry] */
2045 uint32_t sessionExpiry,
2046 const uint8_t * pOptionalMqttPacketType );
2047/* @[declare_mqttpropadd_sessionexpiry] */
2048
2066/* @[declare_mqttpropadd_receivemax] */
2068 uint16_t receiveMax,
2069 const uint8_t * pOptionalMqttPacketType );
2070/* @[declare_mqttpropadd_receivemax] */
2071
2088/* @[declare_mqttpropadd_maxpacketsize] */
2090 uint32_t maxPacketSize,
2091 const uint8_t * pOptionalMqttPacketType );
2092/* @[declare_mqttpropadd_maxpacketsize] */
2093
2110/* @[declare_mqttpropadd_topicaliasmax] */
2112 uint16_t topicAliasMax,
2113 const uint8_t * pOptionalMqttPacketType );
2114/* @[declare_mqttpropadd_topicaliasmax] */
2115
2132/* @[declare_mqttpropadd_requestrespinfo] */
2134 bool requestResponseInfo,
2135 const uint8_t * pOptionalMqttPacketType );
2136/* @[declare_mqttpropadd_requestrespinfo] */
2137
2154/* @[declare_mqttpropadd_requestprobinfo] */
2156 bool requestProblemInfo,
2157 const uint8_t * pOptionalMqttPacketType );
2158/* @[declare_mqttpropadd_requestprobinfo] */
2159
2177/* @[declare_mqttpropadd_authmethod] */
2179 const char * authMethod,
2180 size_t authMethodLength,
2181 const uint8_t * pOptionalMqttPacketType );
2182/* @[declare_mqttpropadd_authmethod] */
2183
2201/* @[declare_mqttpropadd_authdata] */
2203 const char * authData,
2204 size_t authDataLength,
2205 const uint8_t * pOptionalMqttPacketType );
2206/* @[declare_mqttpropadd_authdata] */
2207
2224/* @[declare_mqttpropadd_payloadformat] */
2226 bool payloadFormat,
2227 const uint8_t * pOptionalMqttPacketType );
2228/* @[declare_mqttpropadd_payloadformat] */
2229
2246/* @[declare_mqttpropadd_messageexpiry] */
2248 uint32_t messageExpiry,
2249 const uint8_t * pOptionalMqttPacketType );
2250/* @[declare_mqttpropadd_messageexpiry] */
2251
2268/* @[declare_mqttpropadd_willdelayinterval] */
2270 uint32_t willDelayInterval,
2271 const uint8_t * pOptionalMqttPacketType );
2272/* @[declare_mqttpropadd_willdelayinterval] */
2273
2290/* @[declare_mqttpropadd_topicalias] */
2292 uint16_t topicAlias,
2293 const uint8_t * pOptionalMqttPacketType );
2294/* @[declare_mqttpropadd_topicalias] */
2295
2313/* @[declare_mqttpropadd_responsetopic] */
2315 const char * responseTopic,
2316 size_t responseTopicLength,
2317 const uint8_t * pOptionalMqttPacketType );
2318/* @[declare_mqttpropadd_responsetopic] */
2336/* @[declare_mqttpropadd_correlationdata] */
2338 const void * pCorrelationData,
2339 size_t correlationLength,
2340 const uint8_t * pOptionalMqttPacketType );
2341/* @[declare_mqttpropadd_correlationdata] */
2342
2360/* @[declare_mqttpropadd_contenttype] */
2362 const char * contentType,
2363 size_t contentTypeLength,
2364 const uint8_t * pOptionalMqttPacketType );
2365/* @[declare_mqttpropadd_contenttype] */
2366
2384/* @[declare_mqttpropadd_reasonstring] */
2386 const char * pReasonString,
2387 size_t reasonStringLength,
2388 const uint8_t * pOptionalMqttPacketType );
2389/* @[declare_mqttpropadd_reasonstring] */
2390
2403/* @[declare_mqtt_validatesubscribeproperties] */
2404MQTTStatus_t MQTT_ValidateSubscribeProperties( bool isSubscriptionIdAvailable,
2405 const MQTTPropBuilder_t * propBuilder );
2406/* @[declare_mqtt_validatesubscribeproperties] */
2407
2445 MQTTConnectionProperties_t * pConnectProperties );
2446
2469 const size_t * currentIndex,
2470 uint8_t * property );
2471
2538MQTTStatus_t MQTT_SkipNextProperty( const MQTTPropBuilder_t * pPropertyBuilder,
2539 size_t * currentIndex );
2540
2551/* @[declare_mqttpropget_userprop] */
2552MQTTStatus_t MQTTPropGet_UserProp( const MQTTPropBuilder_t * pPropertyBuilder,
2553 size_t * currentIndex,
2554 MQTTUserProperty_t * pUserProperty );
2555/* @[declare_mqttpropget_userprop] */
2556
2567/* @[declare_mqttpropget_sessionexpiry] */
2569 size_t * currentIndex,
2570 uint32_t * pSessionExpiry );
2571/* @[declare_mqttpropget_sessionexpiry] */
2572
2583/* @[declare_mqttpropget_receivemax] */
2584MQTTStatus_t MQTTPropGet_ReceiveMax( const MQTTPropBuilder_t * pPropertyBuilder,
2585 size_t * currentIndex,
2586 uint16_t * pReceiveMax );
2587/* @[declare_mqttpropget_receivemax] */
2588
2599/* @[declare_mqttpropget_maxqos] */
2600MQTTStatus_t MQTTPropGet_MaxQos( const MQTTPropBuilder_t * pPropertyBuilder,
2601 size_t * currentIndex,
2602 uint8_t * pMaxQos );
2603/* @[declare_mqttpropget_maxqos] */
2604
2615/* @[declare_mqttpropget_retainavailable] */
2617 size_t * currentIndex,
2618 uint8_t * pRetainAvailable );
2619/* @[declare_mqttpropget_retainavailable] */
2620
2631/* @[declare_mqttpropget_maxpacketsize] */
2633 size_t * currentIndex,
2634 uint32_t * pMaxPacketSize );
2635/* @[declare_mqttpropget_maxpacketsize] */
2636
2648/* @[declare_mqttpropget_assignedclientid] */
2650 size_t * currentIndex,
2651 const char ** pClientId,
2652 size_t * pClientIdLength );
2653/* @[declare_mqttpropget_assignedclientid] */
2654
2665/* @[declare_mqttpropget_topicaliasmax] */
2667 size_t * currentIndex,
2668 uint16_t * pTopicAliasMax );
2669/* @[declare_mqttpropget_topicaliasmax] */
2670
2682/* @[declare_mqttpropget_reasonstring] */
2684 size_t * currentIndex,
2685 const char ** pReasonString,
2686 size_t * pReasonStringLength );
2687/* @[declare_mqttpropget_reasonstring] */
2688
2699/* @[declare_mqttpropget_wildcardid] */
2700MQTTStatus_t MQTTPropGet_WildcardId( const MQTTPropBuilder_t * pPropertyBuilder,
2701 size_t * currentIndex,
2702 uint8_t * pWildcardAvailable );
2703/* @[declare_mqttpropget_wildcardid] */
2704
2715/* @[declare_mqttpropget_subsidavailable] */
2717 size_t * currentIndex,
2718 uint8_t * pSubsIdAvailable );
2719/* @[declare_mqttpropget_subsidavailable] */
2720
2731/* @[declare_mqttpropget_sharedsubavailable] */
2733 size_t * currentIndex,
2734 uint8_t * pSharedSubAvailable );
2735/* @[declare_mqttpropget_sharedsubavailable] */
2736
2747/* @[declare_mqttpropget_serverkeepalive] */
2749 size_t * currentIndex,
2750 uint16_t * pServerKeepAlive );
2751/* @[declare_mqttpropget_serverkeepalive] */
2752
2764/* @[declare_mqttpropget_responseinfo] */
2766 size_t * currentIndex,
2767 const char ** pResponseInfo,
2768 size_t * pResponseInfoLength );
2769/* @[declare_mqttpropget_responseinfo] */
2770
2782/* @[declare_mqttpropget_serverref] */
2783MQTTStatus_t MQTTPropGet_ServerRef( const MQTTPropBuilder_t * pPropertyBuilder,
2784 size_t * currentIndex,
2785 const char ** pServerRef,
2786 size_t * pServerRefLength );
2787/* @[declare_mqttpropget_serverref] */
2788
2800/* @[declare_mqttpropget_authmethod] */
2801MQTTStatus_t MQTTPropGet_AuthMethod( const MQTTPropBuilder_t * pPropertyBuilder,
2802 size_t * currentIndex,
2803 const char ** pAuthMethod,
2804 size_t * pAuthMethodLen );
2805/* @[declare_mqttpropget_authmethod] */
2806
2818/* @[declare_mqttpropget_authdata] */
2819MQTTStatus_t MQTTPropGet_AuthData( const MQTTPropBuilder_t * pPropertyBuilder,
2820 size_t * currentIndex,
2821 const char ** pAuthData,
2822 size_t * pAuthDataLen );
2823/* @[declare_mqttpropget_authdata] */
2824
2835/* @[declare_mqttpropget_payloadformatindicator] */
2837 size_t * currentIndex,
2838 uint8_t * pPayloadFormat );
2839/* @[declare_mqttpropget_payloadformatindicator] */
2840
2851/* @[declare_mqttpropget_messageexpiryinterval] */
2853 size_t * currentIndex,
2854 uint32_t * pMessageExpiry );
2855/* @[declare_mqttpropget_messageexpiryinterval] */
2856
2867/* @[declare_mqttpropget_topicalias] */
2868MQTTStatus_t MQTTPropGet_TopicAlias( const MQTTPropBuilder_t * pPropertyBuilder,
2869 size_t * currentIndex,
2870 uint16_t * pTopicAlias );
2871/* @[declare_mqttpropget_topicalias] */
2872
2884/* @[declare_mqttpropget_responsetopic] */
2886 size_t * currentIndex,
2887 const char ** pResponseTopic,
2888 size_t * pResponseTopicLength );
2889/* @[declare_mqttpropget_responsetopic] */
2890
2902/* @[declare_mqttpropget_correlationdata] */
2904 size_t * currentIndex,
2905 const char ** pCorrelationData,
2906 size_t * pCorrelationDataLength );
2907/* @[declare_mqttpropget_correlationdata] */
2908
2919/* @[declare_mqttpropget_subscriptionid] */
2921 size_t * currentIndex,
2922 uint32_t * pSubscriptionId );
2923/* @[declare_mqttpropget_subscriptionid] */
2924
2941/* @[declare_mqttpropget_contenttype] */
2943 size_t * currentIndex,
2944 const char ** pContentType,
2945 size_t * pContentTypeLength );
2946/* @[declare_mqttpropget_contenttype] */
2947
2962/* @[declare_mqtt_validatepublishproperties] */
2963MQTTStatus_t MQTT_ValidatePublishProperties( uint16_t serverTopicAliasMax,
2964 const MQTTPropBuilder_t * propBuilder,
2965 uint16_t * topicAlias );
2966/* @[declare_mqtt_validatepublishproperties] */
2967
3005/* @[declare_mqtt_validatepublishparams] */
3007 uint8_t retainAvailable,
3008 uint8_t maxQos,
3009 uint16_t topicAlias,
3010 uint32_t maxPacketSize );
3011/* @[declare_mqtt_validatepublishparams] */
3012
3021/* @[declare_mqtt_validatepublishackproperties] */
3023/* @[declare_mqtt_validatepublishackproperties] */
3024
3033/* @[declare_mqtt_validateunsubscribeproperties] */
3035/* @[declare_mqtt_validateunsubscribeproperties] */
3036
3074/* @[declare_mqtt_getackpacketsize] */
3075MQTTStatus_t MQTT_GetAckPacketSize( uint32_t * pRemainingLength,
3076 uint32_t * pPacketSize,
3077 uint32_t maxPacketSize,
3078 size_t ackPropertyLength );
3079/* @[declare_mqtt_getackpacketsize] */
3080
3093/* @[declare_mqtt_validatedisconnectproperties] */
3094MQTTStatus_t MQTT_ValidateDisconnectProperties( uint32_t connectSessionExpiry,
3095 const MQTTPropBuilder_t * pPropertyBuilder );
3096/* @[declare_mqtt_validatedisconnectproperties] */
3097
3135/* @[declare_mqtt_deserializedisconnect] */
3137 uint32_t maxPacketSize,
3138 MQTTReasonCodeInfo_t * pDisconnectInfo,
3139 MQTTPropBuilder_t * pPropBuffer );
3140/* @[declare_mqtt_deserializedisconnect] */
3141
3142/* *INDENT-OFF* */
3143#ifdef __cplusplus
3144 }
3145#endif
3146/* *INDENT-ON* */
3147
3148#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: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.