Xin Zhang / azure-iot-c-sdk-f767zi

Dependents:   samplemqtt

Committer:
XinZhangMS
Date:
Thu Aug 23 06:52:14 2018 +0000
Revision:
0:f7f1f0d76dd6
azure-c-sdk for mbed os supporting NUCLEO_F767ZI

Who changed what in which revision?

UserRevisionLine numberNew contents of line
XinZhangMS 0:f7f1f0d76dd6 1 // Copyright (c) Microsoft. All rights reserved.
XinZhangMS 0:f7f1f0d76dd6 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
XinZhangMS 0:f7f1f0d76dd6 3
XinZhangMS 0:f7f1f0d76dd6 4 /** @file iothub_message.h
XinZhangMS 0:f7f1f0d76dd6 5 * @brief The @c IoTHub_Message component encapsulates one message that
XinZhangMS 0:f7f1f0d76dd6 6 * can be transferred by an IoT hub client.
XinZhangMS 0:f7f1f0d76dd6 7 */
XinZhangMS 0:f7f1f0d76dd6 8
XinZhangMS 0:f7f1f0d76dd6 9 #ifndef IOTHUB_MESSAGE_H
XinZhangMS 0:f7f1f0d76dd6 10 #define IOTHUB_MESSAGE_H
XinZhangMS 0:f7f1f0d76dd6 11
XinZhangMS 0:f7f1f0d76dd6 12 #include "azure_c_shared_utility/macro_utils.h"
XinZhangMS 0:f7f1f0d76dd6 13 #include "azure_c_shared_utility/map.h"
XinZhangMS 0:f7f1f0d76dd6 14 #include "azure_c_shared_utility/umock_c_prod.h"
XinZhangMS 0:f7f1f0d76dd6 15
XinZhangMS 0:f7f1f0d76dd6 16 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 17 #include <cstddef>
XinZhangMS 0:f7f1f0d76dd6 18 extern "C"
XinZhangMS 0:f7f1f0d76dd6 19 {
XinZhangMS 0:f7f1f0d76dd6 20 #else
XinZhangMS 0:f7f1f0d76dd6 21 #include <stddef.h>
XinZhangMS 0:f7f1f0d76dd6 22 #endif
XinZhangMS 0:f7f1f0d76dd6 23
XinZhangMS 0:f7f1f0d76dd6 24 #define IOTHUB_MESSAGE_RESULT_VALUES \
XinZhangMS 0:f7f1f0d76dd6 25 IOTHUB_MESSAGE_OK, \
XinZhangMS 0:f7f1f0d76dd6 26 IOTHUB_MESSAGE_INVALID_ARG, \
XinZhangMS 0:f7f1f0d76dd6 27 IOTHUB_MESSAGE_INVALID_TYPE, \
XinZhangMS 0:f7f1f0d76dd6 28 IOTHUB_MESSAGE_ERROR \
XinZhangMS 0:f7f1f0d76dd6 29
XinZhangMS 0:f7f1f0d76dd6 30 /** @brief Enumeration specifying the status of calls to various
XinZhangMS 0:f7f1f0d76dd6 31 * APIs in this module.
XinZhangMS 0:f7f1f0d76dd6 32 */
XinZhangMS 0:f7f1f0d76dd6 33 DEFINE_ENUM(IOTHUB_MESSAGE_RESULT, IOTHUB_MESSAGE_RESULT_VALUES);
XinZhangMS 0:f7f1f0d76dd6 34
XinZhangMS 0:f7f1f0d76dd6 35 #define IOTHUBMESSAGE_CONTENT_TYPE_VALUES \
XinZhangMS 0:f7f1f0d76dd6 36 IOTHUBMESSAGE_BYTEARRAY, \
XinZhangMS 0:f7f1f0d76dd6 37 IOTHUBMESSAGE_STRING, \
XinZhangMS 0:f7f1f0d76dd6 38 IOTHUBMESSAGE_UNKNOWN \
XinZhangMS 0:f7f1f0d76dd6 39
XinZhangMS 0:f7f1f0d76dd6 40 /** @brief Enumeration specifying the content type of the a given
XinZhangMS 0:f7f1f0d76dd6 41 * message.
XinZhangMS 0:f7f1f0d76dd6 42 */
XinZhangMS 0:f7f1f0d76dd6 43 DEFINE_ENUM(IOTHUBMESSAGE_CONTENT_TYPE, IOTHUBMESSAGE_CONTENT_TYPE_VALUES);
XinZhangMS 0:f7f1f0d76dd6 44
XinZhangMS 0:f7f1f0d76dd6 45 typedef struct IOTHUB_MESSAGE_HANDLE_DATA_TAG* IOTHUB_MESSAGE_HANDLE;
XinZhangMS 0:f7f1f0d76dd6 46
XinZhangMS 0:f7f1f0d76dd6 47 /** @brief diagnostic related data*/
XinZhangMS 0:f7f1f0d76dd6 48 typedef struct IOTHUB_MESSAGE_DIAGNOSTIC_PROPERTY_DATA_TAG
XinZhangMS 0:f7f1f0d76dd6 49 {
XinZhangMS 0:f7f1f0d76dd6 50 char* diagnosticId;
XinZhangMS 0:f7f1f0d76dd6 51 char* diagnosticCreationTimeUtc;
XinZhangMS 0:f7f1f0d76dd6 52 }IOTHUB_MESSAGE_DIAGNOSTIC_PROPERTY_DATA, *IOTHUB_MESSAGE_DIAGNOSTIC_PROPERTY_DATA_HANDLE;
XinZhangMS 0:f7f1f0d76dd6 53
XinZhangMS 0:f7f1f0d76dd6 54 static const char DIAG_CREATION_TIME_UTC_PROPERTY_NAME[] = "diag_creation_time_utc";
XinZhangMS 0:f7f1f0d76dd6 55
XinZhangMS 0:f7f1f0d76dd6 56 /**
XinZhangMS 0:f7f1f0d76dd6 57 * @brief Creates a new IoT hub message from a byte array. The type of the
XinZhangMS 0:f7f1f0d76dd6 58 * message will be set to @c IOTHUBMESSAGE_BYTEARRAY.
XinZhangMS 0:f7f1f0d76dd6 59 *
XinZhangMS 0:f7f1f0d76dd6 60 * @param byteArray The byte array from which the message is to be created.
XinZhangMS 0:f7f1f0d76dd6 61 * @param size The size of the byte array.
XinZhangMS 0:f7f1f0d76dd6 62 *
XinZhangMS 0:f7f1f0d76dd6 63 * @return A valid @c IOTHUB_MESSAGE_HANDLE if the message was successfully
XinZhangMS 0:f7f1f0d76dd6 64 * created or @c NULL in case an error occurs.
XinZhangMS 0:f7f1f0d76dd6 65 */
XinZhangMS 0:f7f1f0d76dd6 66 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_HANDLE, IoTHubMessage_CreateFromByteArray, const unsigned char*, byteArray, size_t, size);
XinZhangMS 0:f7f1f0d76dd6 67
XinZhangMS 0:f7f1f0d76dd6 68 /**
XinZhangMS 0:f7f1f0d76dd6 69 * @brief Creates a new IoT hub message from a null terminated string. The
XinZhangMS 0:f7f1f0d76dd6 70 * type of the message will be set to @c IOTHUBMESSAGE_STRING.
XinZhangMS 0:f7f1f0d76dd6 71 *
XinZhangMS 0:f7f1f0d76dd6 72 * @param source The null terminated string from which the message is to be
XinZhangMS 0:f7f1f0d76dd6 73 * created.
XinZhangMS 0:f7f1f0d76dd6 74 *
XinZhangMS 0:f7f1f0d76dd6 75 * @return A valid @c IOTHUB_MESSAGE_HANDLE if the message was successfully
XinZhangMS 0:f7f1f0d76dd6 76 * created or @c NULL in case an error occurs.
XinZhangMS 0:f7f1f0d76dd6 77 */
XinZhangMS 0:f7f1f0d76dd6 78 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_HANDLE, IoTHubMessage_CreateFromString, const char*, source);
XinZhangMS 0:f7f1f0d76dd6 79
XinZhangMS 0:f7f1f0d76dd6 80 /**
XinZhangMS 0:f7f1f0d76dd6 81 * @brief Creates a new IoT hub message with the content identical to that
XinZhangMS 0:f7f1f0d76dd6 82 * of the @p iotHubMessageHandle parameter.
XinZhangMS 0:f7f1f0d76dd6 83 *
XinZhangMS 0:f7f1f0d76dd6 84 * @param iotHubMessageHandle Handle to the message that is to be cloned.
XinZhangMS 0:f7f1f0d76dd6 85 *
XinZhangMS 0:f7f1f0d76dd6 86 * @return A valid @c IOTHUB_MESSAGE_HANDLE if the message was successfully
XinZhangMS 0:f7f1f0d76dd6 87 * cloned or @c NULL in case an error occurs.
XinZhangMS 0:f7f1f0d76dd6 88 */
XinZhangMS 0:f7f1f0d76dd6 89 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_HANDLE, IoTHubMessage_Clone, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 90
XinZhangMS 0:f7f1f0d76dd6 91 /**
XinZhangMS 0:f7f1f0d76dd6 92 * @brief Fetches a pointer and size for the data associated with the IoT
XinZhangMS 0:f7f1f0d76dd6 93 * hub message handle. If the content type of the message is not
XinZhangMS 0:f7f1f0d76dd6 94 * @c IOTHUBMESSAGE_BYTEARRAY then the function returns
XinZhangMS 0:f7f1f0d76dd6 95 * @c IOTHUB_MESSAGE_INVALID_ARG.
XinZhangMS 0:f7f1f0d76dd6 96 *
XinZhangMS 0:f7f1f0d76dd6 97 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 98 * @param buffer Pointer to the memory location where the
XinZhangMS 0:f7f1f0d76dd6 99 * pointer to the buffer will be written.
XinZhangMS 0:f7f1f0d76dd6 100 * @param size The size of the buffer will be written to
XinZhangMS 0:f7f1f0d76dd6 101 * this address.
XinZhangMS 0:f7f1f0d76dd6 102 *
XinZhangMS 0:f7f1f0d76dd6 103 * @return Returns IOTHUB_MESSAGE_OK if the byte array was fetched successfully
XinZhangMS 0:f7f1f0d76dd6 104 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 105 */
XinZhangMS 0:f7f1f0d76dd6 106 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_GetByteArray, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const unsigned char**, buffer, size_t*, size);
XinZhangMS 0:f7f1f0d76dd6 107
XinZhangMS 0:f7f1f0d76dd6 108 /**
XinZhangMS 0:f7f1f0d76dd6 109 * @brief Returns the null terminated string stored in the message.
XinZhangMS 0:f7f1f0d76dd6 110 * If the content type of the message is not @c IOTHUBMESSAGE_STRING
XinZhangMS 0:f7f1f0d76dd6 111 * then the function returns @c NULL.
XinZhangMS 0:f7f1f0d76dd6 112 *
XinZhangMS 0:f7f1f0d76dd6 113 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 114 *
XinZhangMS 0:f7f1f0d76dd6 115 * @return @c NULL if an error occurs or a pointer to the stored null
XinZhangMS 0:f7f1f0d76dd6 116 * terminated string otherwise.
XinZhangMS 0:f7f1f0d76dd6 117 */
XinZhangMS 0:f7f1f0d76dd6 118 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetString, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 119
XinZhangMS 0:f7f1f0d76dd6 120 /**
XinZhangMS 0:f7f1f0d76dd6 121 * @brief Returns the content type of the message given by parameter
XinZhangMS 0:f7f1f0d76dd6 122 * @c iotHubMessageHandle.
XinZhangMS 0:f7f1f0d76dd6 123 *
XinZhangMS 0:f7f1f0d76dd6 124 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 125 *
XinZhangMS 0:f7f1f0d76dd6 126 * @remarks This function retrieves the standardized type of the payload, which indicates if @c iotHubMessageHandle was created using a String or a Byte Array.
XinZhangMS 0:f7f1f0d76dd6 127 *
XinZhangMS 0:f7f1f0d76dd6 128 * @return An @c IOTHUBMESSAGE_CONTENT_TYPE value.
XinZhangMS 0:f7f1f0d76dd6 129 */
XinZhangMS 0:f7f1f0d76dd6 130 MOCKABLE_FUNCTION(, IOTHUBMESSAGE_CONTENT_TYPE, IoTHubMessage_GetContentType, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 131
XinZhangMS 0:f7f1f0d76dd6 132 /**
XinZhangMS 0:f7f1f0d76dd6 133 * @brief Sets the content-type of the message payload, as per supported values on RFC 2046.
XinZhangMS 0:f7f1f0d76dd6 134 *
XinZhangMS 0:f7f1f0d76dd6 135 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 136 *
XinZhangMS 0:f7f1f0d76dd6 137 * @param contentType String defining the type of the payload (e.g., text/plain).
XinZhangMS 0:f7f1f0d76dd6 138 *
XinZhangMS 0:f7f1f0d76dd6 139 * @return An @c IOTHUB_MESSAGE_RESULT value.
XinZhangMS 0:f7f1f0d76dd6 140 */
XinZhangMS 0:f7f1f0d76dd6 141 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetContentTypeSystemProperty, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, contentType);
XinZhangMS 0:f7f1f0d76dd6 142
XinZhangMS 0:f7f1f0d76dd6 143 /**
XinZhangMS 0:f7f1f0d76dd6 144 * @brief Returns the content-type of the message payload, if defined.
XinZhangMS 0:f7f1f0d76dd6 145 *
XinZhangMS 0:f7f1f0d76dd6 146 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 147 *
XinZhangMS 0:f7f1f0d76dd6 148 * @return A string with the content-type value if defined (or NULL otherwise).
XinZhangMS 0:f7f1f0d76dd6 149 */
XinZhangMS 0:f7f1f0d76dd6 150 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetContentTypeSystemProperty, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 151
XinZhangMS 0:f7f1f0d76dd6 152 /**
XinZhangMS 0:f7f1f0d76dd6 153 * @brief Sets the content-encoding of the message payload, as per supported values on RFC 2616.
XinZhangMS 0:f7f1f0d76dd6 154 *
XinZhangMS 0:f7f1f0d76dd6 155 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 156 *
XinZhangMS 0:f7f1f0d76dd6 157 * @param contentEncoding String defining the encoding of the payload (e.g., utf-8).
XinZhangMS 0:f7f1f0d76dd6 158 *
XinZhangMS 0:f7f1f0d76dd6 159 * @return An @c IOTHUB_MESSAGE_RESULT value.
XinZhangMS 0:f7f1f0d76dd6 160 */
XinZhangMS 0:f7f1f0d76dd6 161 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetContentEncodingSystemProperty, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, contentEncoding);
XinZhangMS 0:f7f1f0d76dd6 162
XinZhangMS 0:f7f1f0d76dd6 163 /**
XinZhangMS 0:f7f1f0d76dd6 164 * @brief Returns the content-encoding of the message payload, if defined.
XinZhangMS 0:f7f1f0d76dd6 165 *
XinZhangMS 0:f7f1f0d76dd6 166 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 167 *
XinZhangMS 0:f7f1f0d76dd6 168 * @return A string with the content-encoding value if defined (or NULL otherwise).
XinZhangMS 0:f7f1f0d76dd6 169 */
XinZhangMS 0:f7f1f0d76dd6 170 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetContentEncodingSystemProperty, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 171
XinZhangMS 0:f7f1f0d76dd6 172 /**
XinZhangMS 0:f7f1f0d76dd6 173 * @brief Gets a handle to the message's properties map.
XinZhangMS 0:f7f1f0d76dd6 174 *
XinZhangMS 0:f7f1f0d76dd6 175 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 176 *
XinZhangMS 0:f7f1f0d76dd6 177 * @return A @c MAP_HANDLE pointing to the properties map for this message.
XinZhangMS 0:f7f1f0d76dd6 178 */
XinZhangMS 0:f7f1f0d76dd6 179 MOCKABLE_FUNCTION(, MAP_HANDLE, IoTHubMessage_Properties, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 180
XinZhangMS 0:f7f1f0d76dd6 181 /**
XinZhangMS 0:f7f1f0d76dd6 182 * @brief Sets a property on a Iothub Message.
XinZhangMS 0:f7f1f0d76dd6 183 *
XinZhangMS 0:f7f1f0d76dd6 184 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 185 *
XinZhangMS 0:f7f1f0d76dd6 186 * @param key name of the property to set.
XinZhangMS 0:f7f1f0d76dd6 187 *
XinZhangMS 0:f7f1f0d76dd6 188 * @param value of the property to set.
XinZhangMS 0:f7f1f0d76dd6 189 *
XinZhangMS 0:f7f1f0d76dd6 190 * @return An @c IOTHUB_MESSAGE_RESULT value indicating the result of setting the property.
XinZhangMS 0:f7f1f0d76dd6 191 */
XinZhangMS 0:f7f1f0d76dd6 192 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetProperty, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, key, const char*, value);
XinZhangMS 0:f7f1f0d76dd6 193
XinZhangMS 0:f7f1f0d76dd6 194 /**
XinZhangMS 0:f7f1f0d76dd6 195 * @brief Gets a IotHub Message's properties item.
XinZhangMS 0:f7f1f0d76dd6 196 *
XinZhangMS 0:f7f1f0d76dd6 197 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 198 *
XinZhangMS 0:f7f1f0d76dd6 199 * @param key name of the property to retrieve.
XinZhangMS 0:f7f1f0d76dd6 200 *
XinZhangMS 0:f7f1f0d76dd6 201 * @return A string with the property's value, or NULL if it does not exist in the properties list.
XinZhangMS 0:f7f1f0d76dd6 202 */
XinZhangMS 0:f7f1f0d76dd6 203 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetProperty, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, key);
XinZhangMS 0:f7f1f0d76dd6 204
XinZhangMS 0:f7f1f0d76dd6 205 /**
XinZhangMS 0:f7f1f0d76dd6 206 * @brief Gets the MessageId from the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 207 *
XinZhangMS 0:f7f1f0d76dd6 208 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 209 *
XinZhangMS 0:f7f1f0d76dd6 210 * @return A const char* pointing to the Message Id.
XinZhangMS 0:f7f1f0d76dd6 211 */
XinZhangMS 0:f7f1f0d76dd6 212 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetMessageId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 213
XinZhangMS 0:f7f1f0d76dd6 214 /**
XinZhangMS 0:f7f1f0d76dd6 215 * @brief Sets the MessageId for the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 216 *
XinZhangMS 0:f7f1f0d76dd6 217 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 218 * @param messageId Pointer to the memory location of the messageId
XinZhangMS 0:f7f1f0d76dd6 219 *
XinZhangMS 0:f7f1f0d76dd6 220 * @return Returns IOTHUB_MESSAGE_OK if the messageId was set successfully
XinZhangMS 0:f7f1f0d76dd6 221 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 222 */
XinZhangMS 0:f7f1f0d76dd6 223 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetMessageId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, messageId);
XinZhangMS 0:f7f1f0d76dd6 224
XinZhangMS 0:f7f1f0d76dd6 225 /**
XinZhangMS 0:f7f1f0d76dd6 226 * @brief Gets the CorrelationId from the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 227 *
XinZhangMS 0:f7f1f0d76dd6 228 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 229 *
XinZhangMS 0:f7f1f0d76dd6 230 * @return A const char* pointing to the Correlation Id.
XinZhangMS 0:f7f1f0d76dd6 231 */
XinZhangMS 0:f7f1f0d76dd6 232 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetCorrelationId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 233
XinZhangMS 0:f7f1f0d76dd6 234 /**
XinZhangMS 0:f7f1f0d76dd6 235 * @brief Sets the CorrelationId for the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 236 *
XinZhangMS 0:f7f1f0d76dd6 237 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 238 * @param correlationId Pointer to the memory location of the messageId
XinZhangMS 0:f7f1f0d76dd6 239 *
XinZhangMS 0:f7f1f0d76dd6 240 * @return Returns IOTHUB_MESSAGE_OK if the messageId was set successfully
XinZhangMS 0:f7f1f0d76dd6 241 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 242 */
XinZhangMS 0:f7f1f0d76dd6 243 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetCorrelationId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, correlationId);
XinZhangMS 0:f7f1f0d76dd6 244
XinZhangMS 0:f7f1f0d76dd6 245 /**
XinZhangMS 0:f7f1f0d76dd6 246 * @brief Gets the DiagnosticData from the IOTHUB_MESSAGE_HANDLE. CAUTION: SDK user should not call it directly, it is for internal use only.
XinZhangMS 0:f7f1f0d76dd6 247 *
XinZhangMS 0:f7f1f0d76dd6 248 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 249 *
XinZhangMS 0:f7f1f0d76dd6 250 * @return A const IOTHUB_MESSAGE_DIAGNOSTIC_PROPERTY_DATA* pointing to the diagnostic property data.
XinZhangMS 0:f7f1f0d76dd6 251 */
XinZhangMS 0:f7f1f0d76dd6 252 MOCKABLE_FUNCTION(, const IOTHUB_MESSAGE_DIAGNOSTIC_PROPERTY_DATA*, IoTHubMessage_GetDiagnosticPropertyData, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 253
XinZhangMS 0:f7f1f0d76dd6 254 /**
XinZhangMS 0:f7f1f0d76dd6 255 * @brief Sets the DiagnosticData for the IOTHUB_MESSAGE_HANDLE. CAUTION: SDK user should not call it directly, it is for internal use only.
XinZhangMS 0:f7f1f0d76dd6 256 *
XinZhangMS 0:f7f1f0d76dd6 257 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 258 * @param diagnosticData Pointer to the memory location of the diagnosticData
XinZhangMS 0:f7f1f0d76dd6 259 *
XinZhangMS 0:f7f1f0d76dd6 260 * @return Returns IOTHUB_MESSAGE_OK if the DiagnosticData was set successfully
XinZhangMS 0:f7f1f0d76dd6 261 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 262 */
XinZhangMS 0:f7f1f0d76dd6 263 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetDiagnosticPropertyData, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const IOTHUB_MESSAGE_DIAGNOSTIC_PROPERTY_DATA*, diagnosticData);
XinZhangMS 0:f7f1f0d76dd6 264
XinZhangMS 0:f7f1f0d76dd6 265 /**
XinZhangMS 0:f7f1f0d76dd6 266 * @brief Gets the output name from the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 267 *
XinZhangMS 0:f7f1f0d76dd6 268 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 269 *
XinZhangMS 0:f7f1f0d76dd6 270 * @return A const char* pointing to the Output Id.
XinZhangMS 0:f7f1f0d76dd6 271 */
XinZhangMS 0:f7f1f0d76dd6 272 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetOutputName, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 273
XinZhangMS 0:f7f1f0d76dd6 274
XinZhangMS 0:f7f1f0d76dd6 275 /**
XinZhangMS 0:f7f1f0d76dd6 276 * @brief Sets output for named queues. CAUTION: SDK user should not call it directly, it is for internal use only.
XinZhangMS 0:f7f1f0d76dd6 277 *
XinZhangMS 0:f7f1f0d76dd6 278 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 279 * @param outputName Pointer to the queue to output message to
XinZhangMS 0:f7f1f0d76dd6 280 *
XinZhangMS 0:f7f1f0d76dd6 281 * @return Returns IOTHUB_MESSAGE_OK if the DiagnosticData was set successfully
XinZhangMS 0:f7f1f0d76dd6 282 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 283 */
XinZhangMS 0:f7f1f0d76dd6 284 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetOutputName, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, outputName);
XinZhangMS 0:f7f1f0d76dd6 285
XinZhangMS 0:f7f1f0d76dd6 286
XinZhangMS 0:f7f1f0d76dd6 287 /**
XinZhangMS 0:f7f1f0d76dd6 288 * @brief Gets the input name from the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 289 *
XinZhangMS 0:f7f1f0d76dd6 290 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 291 *
XinZhangMS 0:f7f1f0d76dd6 292 * @return A const char* pointing to the Input Id.
XinZhangMS 0:f7f1f0d76dd6 293 */
XinZhangMS 0:f7f1f0d76dd6 294 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetInputName, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 295
XinZhangMS 0:f7f1f0d76dd6 296 /**
XinZhangMS 0:f7f1f0d76dd6 297 * @brief Sets input for named queues. CAUTION: SDK user should not call it directly, it is for internal use only.
XinZhangMS 0:f7f1f0d76dd6 298 *
XinZhangMS 0:f7f1f0d76dd6 299 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 300 * @param inputName Pointer to the queue to input message to
XinZhangMS 0:f7f1f0d76dd6 301 *
XinZhangMS 0:f7f1f0d76dd6 302 * @return Returns IOTHUB_MESSAGE_OK if the DiagnosticData was set successfully
XinZhangMS 0:f7f1f0d76dd6 303 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 304 */
XinZhangMS 0:f7f1f0d76dd6 305 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetInputName, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, inputName);
XinZhangMS 0:f7f1f0d76dd6 306
XinZhangMS 0:f7f1f0d76dd6 307 /**
XinZhangMS 0:f7f1f0d76dd6 308 * @brief Gets the module name from the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 309 *
XinZhangMS 0:f7f1f0d76dd6 310 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 311 *
XinZhangMS 0:f7f1f0d76dd6 312 * @return A const char* pointing to the connection module Id.
XinZhangMS 0:f7f1f0d76dd6 313 */
XinZhangMS 0:f7f1f0d76dd6 314 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetConnectionModuleId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 315
XinZhangMS 0:f7f1f0d76dd6 316 /**
XinZhangMS 0:f7f1f0d76dd6 317 * @brief Sets connection module ID. CAUTION: SDK user should not call it directly, it is for internal use only.
XinZhangMS 0:f7f1f0d76dd6 318 *
XinZhangMS 0:f7f1f0d76dd6 319 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 320 * @param connectionModuleId Pointer to the module ID of connector
XinZhangMS 0:f7f1f0d76dd6 321 *
XinZhangMS 0:f7f1f0d76dd6 322 * @return Returns IOTHUB_MESSAGE_OK if the DiagnosticData was set successfully
XinZhangMS 0:f7f1f0d76dd6 323 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 324 */
XinZhangMS 0:f7f1f0d76dd6 325 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetConnectionModuleId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, connectionModuleId);
XinZhangMS 0:f7f1f0d76dd6 326
XinZhangMS 0:f7f1f0d76dd6 327
XinZhangMS 0:f7f1f0d76dd6 328 /**
XinZhangMS 0:f7f1f0d76dd6 329 * @brief Gets the connection device ID from the IOTHUB_MESSAGE_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 330 *
XinZhangMS 0:f7f1f0d76dd6 331 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 332 *
XinZhangMS 0:f7f1f0d76dd6 333 * @return A const char* pointing to the connection device Id.
XinZhangMS 0:f7f1f0d76dd6 334 */
XinZhangMS 0:f7f1f0d76dd6 335 MOCKABLE_FUNCTION(, const char*, IoTHubMessage_GetConnectionDeviceId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 336
XinZhangMS 0:f7f1f0d76dd6 337 /**
XinZhangMS 0:f7f1f0d76dd6 338 * @brief Sets connection device Id. CAUTION: SDK user should not call it directly, it is for internal use only.
XinZhangMS 0:f7f1f0d76dd6 339 *
XinZhangMS 0:f7f1f0d76dd6 340 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 341 * @param connectionDeviceId Pointer to the device ID of connector
XinZhangMS 0:f7f1f0d76dd6 342 *
XinZhangMS 0:f7f1f0d76dd6 343 * @return Returns IOTHUB_MESSAGE_OK if the DiagnosticData was set successfully
XinZhangMS 0:f7f1f0d76dd6 344 * or an error code otherwise.
XinZhangMS 0:f7f1f0d76dd6 345 */
XinZhangMS 0:f7f1f0d76dd6 346 MOCKABLE_FUNCTION(, IOTHUB_MESSAGE_RESULT, IoTHubMessage_SetConnectionDeviceId, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle, const char*, connectionDeviceId);
XinZhangMS 0:f7f1f0d76dd6 347
XinZhangMS 0:f7f1f0d76dd6 348
XinZhangMS 0:f7f1f0d76dd6 349 /**
XinZhangMS 0:f7f1f0d76dd6 350 * @brief Frees all resources associated with the given message handle.
XinZhangMS 0:f7f1f0d76dd6 351 *
XinZhangMS 0:f7f1f0d76dd6 352 * @param iotHubMessageHandle Handle to the message.
XinZhangMS 0:f7f1f0d76dd6 353 */
XinZhangMS 0:f7f1f0d76dd6 354 MOCKABLE_FUNCTION(, void, IoTHubMessage_Destroy, IOTHUB_MESSAGE_HANDLE, iotHubMessageHandle);
XinZhangMS 0:f7f1f0d76dd6 355
XinZhangMS 0:f7f1f0d76dd6 356 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 357 }
XinZhangMS 0:f7f1f0d76dd6 358 #endif
XinZhangMS 0:f7f1f0d76dd6 359
XinZhangMS 0:f7f1f0d76dd6 360 #endif /* IOTHUB_MESSAGE_H */