A small footprint MQTT library
Dependents: STM32F746_iothub_client_sample_mqtt FXOS8700CQ_To_Azure_IoT f767zi_mqtt FXOS8700CQ_To_Azure_IoT ... more
mqtt_message.c@0:ef4901974abc, 2016-04-08 (annotated)
- Committer:
- Azure.IoT Build
- Date:
- Fri Apr 08 12:01:23 2016 -0700
- Revision:
- 0:ef4901974abc
- Child:
- 13:3c202001e4ba
1.0.4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Azure.IoT Build | 0:ef4901974abc | 1 | // Copyright (c) Microsoft. All rights reserved. |
Azure.IoT Build | 0:ef4901974abc | 2 | // Licensed under the MIT license. See LICENSE file in the project root for full license information. |
Azure.IoT Build | 0:ef4901974abc | 3 | |
Azure.IoT Build | 0:ef4901974abc | 4 | #include <stdlib.h> |
Azure.IoT Build | 0:ef4901974abc | 5 | #include "azure_umqtt_c/mqtt_message.h" |
Azure.IoT Build | 0:ef4901974abc | 6 | #include "azure_c_shared_utility/gballoc.h" |
Azure.IoT Build | 0:ef4901974abc | 7 | |
Azure.IoT Build | 0:ef4901974abc | 8 | typedef struct MQTT_MESSAGE_TAG |
Azure.IoT Build | 0:ef4901974abc | 9 | { |
Azure.IoT Build | 0:ef4901974abc | 10 | uint16_t packetId; |
Azure.IoT Build | 0:ef4901974abc | 11 | char* topicName; |
Azure.IoT Build | 0:ef4901974abc | 12 | QOS_VALUE qosInfo; |
Azure.IoT Build | 0:ef4901974abc | 13 | APP_PAYLOAD appPayload; |
Azure.IoT Build | 0:ef4901974abc | 14 | bool isDuplicateMsg; |
Azure.IoT Build | 0:ef4901974abc | 15 | bool isMessageRetained; |
Azure.IoT Build | 0:ef4901974abc | 16 | } MQTT_MESSAGE; |
Azure.IoT Build | 0:ef4901974abc | 17 | |
Azure.IoT Build | 0:ef4901974abc | 18 | MQTT_MESSAGE_HANDLE mqttmessage_create(uint16_t packetId, const char* topicName, QOS_VALUE qosValue, const uint8_t* appMsg, size_t appMsgLength) |
Azure.IoT Build | 0:ef4901974abc | 19 | { |
Azure.IoT Build | 0:ef4901974abc | 20 | /* Codes_SRS_MQTTMESSAGE_07_001:[If the parameters topicName is NULL is zero then mqttmessage_create shall return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 21 | MQTT_MESSAGE* result; |
Azure.IoT Build | 0:ef4901974abc | 22 | if (topicName == NULL) |
Azure.IoT Build | 0:ef4901974abc | 23 | { |
Azure.IoT Build | 0:ef4901974abc | 24 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 25 | } |
Azure.IoT Build | 0:ef4901974abc | 26 | else |
Azure.IoT Build | 0:ef4901974abc | 27 | { |
Azure.IoT Build | 0:ef4901974abc | 28 | /* Codes_SRS_MQTTMESSAGE_07_002: [mqttmessage_create shall allocate and copy the topicName and appMsg parameters.] */ |
Azure.IoT Build | 0:ef4901974abc | 29 | result = malloc(sizeof(MQTT_MESSAGE)); |
Azure.IoT Build | 0:ef4901974abc | 30 | if (result != NULL) |
Azure.IoT Build | 0:ef4901974abc | 31 | { |
Azure.IoT Build | 0:ef4901974abc | 32 | if (mallocAndStrcpy_s(&result->topicName, topicName) != 0) |
Azure.IoT Build | 0:ef4901974abc | 33 | { |
Azure.IoT Build | 0:ef4901974abc | 34 | /* Codes_SRS_MQTTMESSAGE_07_003: [If any memory allocation fails mqttmessage_create shall free any allocated memory and return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 35 | free(result); |
Azure.IoT Build | 0:ef4901974abc | 36 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 37 | } |
Azure.IoT Build | 0:ef4901974abc | 38 | else |
Azure.IoT Build | 0:ef4901974abc | 39 | { |
Azure.IoT Build | 0:ef4901974abc | 40 | result->packetId = packetId; |
Azure.IoT Build | 0:ef4901974abc | 41 | result->isDuplicateMsg = false; |
Azure.IoT Build | 0:ef4901974abc | 42 | result->isMessageRetained = false; |
Azure.IoT Build | 0:ef4901974abc | 43 | result->qosInfo = qosValue; |
Azure.IoT Build | 0:ef4901974abc | 44 | |
Azure.IoT Build | 0:ef4901974abc | 45 | /* Codes_SRS_MQTTMESSAGE_07_002: [mqttmessage_create shall allocate and copy the topicName and appMsg parameters.] */ |
Azure.IoT Build | 0:ef4901974abc | 46 | result->appPayload.length = appMsgLength; |
Azure.IoT Build | 0:ef4901974abc | 47 | if (result->appPayload.length > 0) |
Azure.IoT Build | 0:ef4901974abc | 48 | { |
Azure.IoT Build | 0:ef4901974abc | 49 | result->appPayload.message = malloc(appMsgLength); |
Azure.IoT Build | 0:ef4901974abc | 50 | if (result->appPayload.message == NULL) |
Azure.IoT Build | 0:ef4901974abc | 51 | { |
Azure.IoT Build | 0:ef4901974abc | 52 | /* Codes_SRS_MQTTMESSAGE_07_003: [If any memory allocation fails mqttmessage_create shall free any allocated memory and return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 53 | free(result->topicName); |
Azure.IoT Build | 0:ef4901974abc | 54 | free(result); |
Azure.IoT Build | 0:ef4901974abc | 55 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 56 | } |
Azure.IoT Build | 0:ef4901974abc | 57 | else |
Azure.IoT Build | 0:ef4901974abc | 58 | { |
Azure.IoT Build | 0:ef4901974abc | 59 | memcpy(result->appPayload.message, appMsg, appMsgLength); |
Azure.IoT Build | 0:ef4901974abc | 60 | } |
Azure.IoT Build | 0:ef4901974abc | 61 | } |
Azure.IoT Build | 0:ef4901974abc | 62 | else |
Azure.IoT Build | 0:ef4901974abc | 63 | { |
Azure.IoT Build | 0:ef4901974abc | 64 | result->appPayload.message = NULL; |
Azure.IoT Build | 0:ef4901974abc | 65 | } |
Azure.IoT Build | 0:ef4901974abc | 66 | } |
Azure.IoT Build | 0:ef4901974abc | 67 | } |
Azure.IoT Build | 0:ef4901974abc | 68 | } |
Azure.IoT Build | 0:ef4901974abc | 69 | /* Codes_SRS_MQTTMESSAGE_07_004: [If mqttmessage_createMessage succeeds the it shall return a NON-NULL MQTT_MESSAGE_HANDLE value.] */ |
Azure.IoT Build | 0:ef4901974abc | 70 | return result; |
Azure.IoT Build | 0:ef4901974abc | 71 | } |
Azure.IoT Build | 0:ef4901974abc | 72 | |
Azure.IoT Build | 0:ef4901974abc | 73 | void mqttmessage_destroy(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 74 | { |
Azure.IoT Build | 0:ef4901974abc | 75 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 76 | /* Codes_SRS_MQTTMESSAGE_07_005: [If the handle parameter is NULL then mqttmessage_destroyMessage shall do nothing] */ |
Azure.IoT Build | 0:ef4901974abc | 77 | if (msgInfo != NULL) |
Azure.IoT Build | 0:ef4901974abc | 78 | { |
Azure.IoT Build | 0:ef4901974abc | 79 | /* Codes_SRS_MQTTMESSAGE_07_006: [mqttmessage_destroyMessage shall free all resources associated with the MQTT_MESSAGE_HANDLE value] */ |
Azure.IoT Build | 0:ef4901974abc | 80 | free(msgInfo->topicName); |
Azure.IoT Build | 0:ef4901974abc | 81 | if (msgInfo->appPayload.message != NULL) |
Azure.IoT Build | 0:ef4901974abc | 82 | { |
Azure.IoT Build | 0:ef4901974abc | 83 | free(msgInfo->appPayload.message); |
Azure.IoT Build | 0:ef4901974abc | 84 | } |
Azure.IoT Build | 0:ef4901974abc | 85 | free(msgInfo); |
Azure.IoT Build | 0:ef4901974abc | 86 | } |
Azure.IoT Build | 0:ef4901974abc | 87 | } |
Azure.IoT Build | 0:ef4901974abc | 88 | |
Azure.IoT Build | 0:ef4901974abc | 89 | MQTT_MESSAGE_HANDLE mqttmessage_clone(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 90 | { |
Azure.IoT Build | 0:ef4901974abc | 91 | MQTT_MESSAGE_HANDLE result; |
Azure.IoT Build | 0:ef4901974abc | 92 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 93 | { |
Azure.IoT Build | 0:ef4901974abc | 94 | /* Codes_SRS_MQTTMESSAGE_07_007: [If handle parameter is NULL then mqttmessage_clone shall return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 95 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 96 | } |
Azure.IoT Build | 0:ef4901974abc | 97 | else |
Azure.IoT Build | 0:ef4901974abc | 98 | { |
Azure.IoT Build | 0:ef4901974abc | 99 | /* Codes_SRS_MQTTMESSAGE_07_008: [mqttmessage_clone shall create a new MQTT_MESSAGE_HANDLE with data content identical of the handle value.] */ |
Azure.IoT Build | 0:ef4901974abc | 100 | MQTT_MESSAGE* mqtt_message = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 101 | result = mqttmessage_create(mqtt_message->packetId, mqtt_message->topicName, mqtt_message->qosInfo, mqtt_message->appPayload.message, mqtt_message->appPayload.length); |
Azure.IoT Build | 0:ef4901974abc | 102 | if (result != NULL) |
Azure.IoT Build | 0:ef4901974abc | 103 | { |
Azure.IoT Build | 0:ef4901974abc | 104 | (void)mqttmessage_setIsDuplicateMsg(result, mqtt_message->isDuplicateMsg); |
Azure.IoT Build | 0:ef4901974abc | 105 | (void)mqttmessage_setIsRetained(result, mqtt_message->isMessageRetained); |
Azure.IoT Build | 0:ef4901974abc | 106 | } |
Azure.IoT Build | 0:ef4901974abc | 107 | } |
Azure.IoT Build | 0:ef4901974abc | 108 | return result; |
Azure.IoT Build | 0:ef4901974abc | 109 | } |
Azure.IoT Build | 0:ef4901974abc | 110 | |
Azure.IoT Build | 0:ef4901974abc | 111 | uint16_t mqttmessage_getPacketId(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 112 | { |
Azure.IoT Build | 0:ef4901974abc | 113 | uint16_t result; |
Azure.IoT Build | 0:ef4901974abc | 114 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 115 | { |
Azure.IoT Build | 0:ef4901974abc | 116 | /* Codes_SRS_MQTTMESSAGE_07_010: [If handle is NULL then mqttmessage_getPacketId shall return 0.] */ |
Azure.IoT Build | 0:ef4901974abc | 117 | result = 0; |
Azure.IoT Build | 0:ef4901974abc | 118 | } |
Azure.IoT Build | 0:ef4901974abc | 119 | else |
Azure.IoT Build | 0:ef4901974abc | 120 | { |
Azure.IoT Build | 0:ef4901974abc | 121 | /* Codes_SRS_MQTTMESSAGE_07_011: [mqttmessage_getPacketId shall return the packetId value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 122 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 123 | result = msgInfo->packetId; |
Azure.IoT Build | 0:ef4901974abc | 124 | } |
Azure.IoT Build | 0:ef4901974abc | 125 | return result; |
Azure.IoT Build | 0:ef4901974abc | 126 | } |
Azure.IoT Build | 0:ef4901974abc | 127 | |
Azure.IoT Build | 0:ef4901974abc | 128 | const char* mqttmessage_getTopicName(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 129 | { |
Azure.IoT Build | 0:ef4901974abc | 130 | const char* result; |
Azure.IoT Build | 0:ef4901974abc | 131 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 132 | { |
Azure.IoT Build | 0:ef4901974abc | 133 | /* Codes_SRS_MQTTMESSAGE_07_012: [If handle is NULL then mqttmessage_getTopicName shall return a NULL string.] */ |
Azure.IoT Build | 0:ef4901974abc | 134 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 135 | } |
Azure.IoT Build | 0:ef4901974abc | 136 | else |
Azure.IoT Build | 0:ef4901974abc | 137 | { |
Azure.IoT Build | 0:ef4901974abc | 138 | /* Codes_SRS_MQTTMESSAGE_07_013: [mqttmessage_getTopicName shall return the topicName contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 139 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 140 | result = msgInfo->topicName; |
Azure.IoT Build | 0:ef4901974abc | 141 | } |
Azure.IoT Build | 0:ef4901974abc | 142 | return result; |
Azure.IoT Build | 0:ef4901974abc | 143 | } |
Azure.IoT Build | 0:ef4901974abc | 144 | |
Azure.IoT Build | 0:ef4901974abc | 145 | QOS_VALUE mqttmessage_getQosType(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 146 | { |
Azure.IoT Build | 0:ef4901974abc | 147 | QOS_VALUE result; |
Azure.IoT Build | 0:ef4901974abc | 148 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 149 | { |
Azure.IoT Build | 0:ef4901974abc | 150 | /* Codes_SRS_MQTTMESSAGE_07_014: [If handle is NULL then mqttmessage_getQosType shall return the default DELIVER_AT_MOST_ONCE value.] */ |
Azure.IoT Build | 0:ef4901974abc | 151 | result = DELIVER_AT_MOST_ONCE; |
Azure.IoT Build | 0:ef4901974abc | 152 | } |
Azure.IoT Build | 0:ef4901974abc | 153 | else |
Azure.IoT Build | 0:ef4901974abc | 154 | { |
Azure.IoT Build | 0:ef4901974abc | 155 | /* Codes_SRS_MQTTMESSAGE_07_015: [mqttmessage_getQosType shall return the QOS Type value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 156 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 157 | result = msgInfo->qosInfo; |
Azure.IoT Build | 0:ef4901974abc | 158 | } |
Azure.IoT Build | 0:ef4901974abc | 159 | return result; |
Azure.IoT Build | 0:ef4901974abc | 160 | } |
Azure.IoT Build | 0:ef4901974abc | 161 | |
Azure.IoT Build | 0:ef4901974abc | 162 | bool mqttmessage_getIsDuplicateMsg(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 163 | { |
Azure.IoT Build | 0:ef4901974abc | 164 | bool result; |
Azure.IoT Build | 0:ef4901974abc | 165 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 166 | { |
Azure.IoT Build | 0:ef4901974abc | 167 | /* Codes_SRS_MQTTMESSAGE_07_016: [If handle is NULL then mqttmessage_getIsDuplicateMsg shall return false.] */ |
Azure.IoT Build | 0:ef4901974abc | 168 | result = false; |
Azure.IoT Build | 0:ef4901974abc | 169 | } |
Azure.IoT Build | 0:ef4901974abc | 170 | else |
Azure.IoT Build | 0:ef4901974abc | 171 | { |
Azure.IoT Build | 0:ef4901974abc | 172 | /* Codes_SRS_MQTTMESSAGE_07_017: [mqttmessage_getIsDuplicateMsg shall return the isDuplicateMsg value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 173 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 174 | result = msgInfo->isDuplicateMsg; |
Azure.IoT Build | 0:ef4901974abc | 175 | } |
Azure.IoT Build | 0:ef4901974abc | 176 | return result; |
Azure.IoT Build | 0:ef4901974abc | 177 | } |
Azure.IoT Build | 0:ef4901974abc | 178 | |
Azure.IoT Build | 0:ef4901974abc | 179 | bool mqttmessage_getIsRetained(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 180 | { |
Azure.IoT Build | 0:ef4901974abc | 181 | bool result; |
Azure.IoT Build | 0:ef4901974abc | 182 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 183 | { |
Azure.IoT Build | 0:ef4901974abc | 184 | /* Codes_SRS_MQTTMESSAGE_07_018: [If handle is NULL then mqttmessage_getIsRetained shall return false.] */ |
Azure.IoT Build | 0:ef4901974abc | 185 | result = false; |
Azure.IoT Build | 0:ef4901974abc | 186 | } |
Azure.IoT Build | 0:ef4901974abc | 187 | else |
Azure.IoT Build | 0:ef4901974abc | 188 | { |
Azure.IoT Build | 0:ef4901974abc | 189 | /* Codes_SRS_MQTTMESSAGE_07_019: [mqttmessage_getIsRetained shall return the isRetained value contained in MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 190 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 191 | result = msgInfo->isMessageRetained; |
Azure.IoT Build | 0:ef4901974abc | 192 | } |
Azure.IoT Build | 0:ef4901974abc | 193 | return result; |
Azure.IoT Build | 0:ef4901974abc | 194 | } |
Azure.IoT Build | 0:ef4901974abc | 195 | |
Azure.IoT Build | 0:ef4901974abc | 196 | int mqttmessage_setIsDuplicateMsg(MQTT_MESSAGE_HANDLE handle, bool duplicateMsg) |
Azure.IoT Build | 0:ef4901974abc | 197 | { |
Azure.IoT Build | 0:ef4901974abc | 198 | int result; |
Azure.IoT Build | 0:ef4901974abc | 199 | /* Codes_SRS_MQTTMESSAGE_07_022: [If handle is NULL then mqttmessage_setIsDuplicateMsg shall return a non-zero value.] */ |
Azure.IoT Build | 0:ef4901974abc | 200 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 201 | { |
Azure.IoT Build | 0:ef4901974abc | 202 | result = __LINE__; |
Azure.IoT Build | 0:ef4901974abc | 203 | } |
Azure.IoT Build | 0:ef4901974abc | 204 | else |
Azure.IoT Build | 0:ef4901974abc | 205 | { |
Azure.IoT Build | 0:ef4901974abc | 206 | /* Codes_SRS_MQTTMESSAGE_07_023: [mqttmessage_setIsDuplicateMsg shall store the duplicateMsg value in the MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 207 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 208 | msgInfo->isDuplicateMsg = duplicateMsg; |
Azure.IoT Build | 0:ef4901974abc | 209 | result = 0; |
Azure.IoT Build | 0:ef4901974abc | 210 | } |
Azure.IoT Build | 0:ef4901974abc | 211 | return result; |
Azure.IoT Build | 0:ef4901974abc | 212 | } |
Azure.IoT Build | 0:ef4901974abc | 213 | |
Azure.IoT Build | 0:ef4901974abc | 214 | int mqttmessage_setIsRetained(MQTT_MESSAGE_HANDLE handle, bool retainMsg) |
Azure.IoT Build | 0:ef4901974abc | 215 | { |
Azure.IoT Build | 0:ef4901974abc | 216 | int result; |
Azure.IoT Build | 0:ef4901974abc | 217 | /* Codes_SRS_MQTTMESSAGE_07_024: [If handle is NULL then mqttmessage_setIsRetained shall return a non-zero value.] */ |
Azure.IoT Build | 0:ef4901974abc | 218 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 219 | { |
Azure.IoT Build | 0:ef4901974abc | 220 | result = __LINE__; |
Azure.IoT Build | 0:ef4901974abc | 221 | } |
Azure.IoT Build | 0:ef4901974abc | 222 | else |
Azure.IoT Build | 0:ef4901974abc | 223 | { |
Azure.IoT Build | 0:ef4901974abc | 224 | /* Codes_SRS_MQTTMESSAGE_07_025: [mqttmessage_setIsRetained shall store the retainMsg value in the MQTT_MESSAGE_HANDLE handle.] */ |
Azure.IoT Build | 0:ef4901974abc | 225 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 226 | msgInfo->isMessageRetained = retainMsg; |
Azure.IoT Build | 0:ef4901974abc | 227 | result = 0; |
Azure.IoT Build | 0:ef4901974abc | 228 | } |
Azure.IoT Build | 0:ef4901974abc | 229 | return result; |
Azure.IoT Build | 0:ef4901974abc | 230 | } |
Azure.IoT Build | 0:ef4901974abc | 231 | |
Azure.IoT Build | 0:ef4901974abc | 232 | const APP_PAYLOAD* mqttmessage_getApplicationMsg(MQTT_MESSAGE_HANDLE handle) |
Azure.IoT Build | 0:ef4901974abc | 233 | { |
Azure.IoT Build | 0:ef4901974abc | 234 | const APP_PAYLOAD* result; |
Azure.IoT Build | 0:ef4901974abc | 235 | if (handle == NULL) |
Azure.IoT Build | 0:ef4901974abc | 236 | { |
Azure.IoT Build | 0:ef4901974abc | 237 | /* Codes_SRS_MQTTMESSAGE_07_020: [If handle is NULL or if msgLen is 0 then mqttmessage_getApplicationMsg shall return NULL.] */ |
Azure.IoT Build | 0:ef4901974abc | 238 | result = NULL; |
Azure.IoT Build | 0:ef4901974abc | 239 | } |
Azure.IoT Build | 0:ef4901974abc | 240 | else |
Azure.IoT Build | 0:ef4901974abc | 241 | { |
Azure.IoT Build | 0:ef4901974abc | 242 | /* Codes_SRS_MQTTMESSAGE_07_021: [mqttmessage_getApplicationMsg shall return the applicationMsg value contained in MQTT_MESSAGE_HANDLE handle and the length of the appMsg in the msgLen parameter.] */ |
Azure.IoT Build | 0:ef4901974abc | 243 | MQTT_MESSAGE* msgInfo = (MQTT_MESSAGE*)handle; |
Azure.IoT Build | 0:ef4901974abc | 244 | result = &msgInfo->appPayload; |
Azure.IoT Build | 0:ef4901974abc | 245 | } |
Azure.IoT Build | 0:ef4901974abc | 246 | return result; |
Azure.IoT Build | 0:ef4901974abc | 247 | } |