Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
iothub_service_client/inc/iothub_deviceconfiguration.h@0:f7f1f0d76dd6, 2018-08-23 (annotated)
- 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?
User | Revision | Line number | New 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 | // This file is under development and it is subject to change |
XinZhangMS | 0:f7f1f0d76dd6 | 5 | |
XinZhangMS | 0:f7f1f0d76dd6 | 6 | #ifndef IOTHUB_DEVICECONFIGURATION_H |
XinZhangMS | 0:f7f1f0d76dd6 | 7 | #define IOTHUB_DEVICECONFIGURATION_H |
XinZhangMS | 0:f7f1f0d76dd6 | 8 | |
XinZhangMS | 0:f7f1f0d76dd6 | 9 | #include "azure_c_shared_utility/crt_abstractions.h" |
XinZhangMS | 0:f7f1f0d76dd6 | 10 | #include "azure_c_shared_utility/singlylinkedlist.h" |
XinZhangMS | 0:f7f1f0d76dd6 | 11 | #include <time.h> |
XinZhangMS | 0:f7f1f0d76dd6 | 12 | #include "iothub_service_client_auth.h" |
XinZhangMS | 0:f7f1f0d76dd6 | 13 | |
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 | extern "C" |
XinZhangMS | 0:f7f1f0d76dd6 | 18 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 19 | #endif |
XinZhangMS | 0:f7f1f0d76dd6 | 20 | |
XinZhangMS | 0:f7f1f0d76dd6 | 21 | #define IOTHUB_DEVICE_CONFIGURATION_RESULT_VALUES \ |
XinZhangMS | 0:f7f1f0d76dd6 | 22 | IOTHUB_DEVICE_CONFIGURATION_OK, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 23 | IOTHUB_DEVICE_CONFIGURATION_INVALID_ARG, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 24 | IOTHUB_DEVICE_CONFIGURATION_ERROR, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 25 | IOTHUB_DEVICE_CONFIGURATION_HTTPAPI_ERROR, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 26 | IOTHUB_DEVICE_CONFIGURATION_JSON_ERROR, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 27 | IOTHUB_DEVICE_CONFIGURATION_OUT_OF_MEMORY_ERROR, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 28 | IOTHUB_DEVICE_CONFIGURATION_CONFIGURATION_NOT_EXIST, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 29 | IOTHUB_DEVICE_CONFIGURATION_CONFIGURATION_EXIST \ |
XinZhangMS | 0:f7f1f0d76dd6 | 30 | |
XinZhangMS | 0:f7f1f0d76dd6 | 31 | DEFINE_ENUM(IOTHUB_DEVICE_CONFIGURATION_RESULT, IOTHUB_DEVICE_CONFIGURATION_RESULT_VALUES); |
XinZhangMS | 0:f7f1f0d76dd6 | 32 | |
XinZhangMS | 0:f7f1f0d76dd6 | 33 | #define IOTHUB_DEVICECONFIGURATION_REQUEST_MODE_VALUES \ |
XinZhangMS | 0:f7f1f0d76dd6 | 34 | IOTHUB_DEVICECONFIGURATION_REQUEST_GET_LIST, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 35 | IOTHUB_DEVICECONFIGURATION_REQUEST_GET, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 36 | IOTHUB_DEVICECONFIGURATION_REQUEST_ADD, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 37 | IOTHUB_DEVICECONFIGURATION_REQUEST_UPDATE, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 38 | IOTHUB_DEVICECONFIGURATION_REQUEST_DELETE, \ |
XinZhangMS | 0:f7f1f0d76dd6 | 39 | IOTHUB_DEVICECONFIGURATION_REQUEST_APPLY_CONFIGURATION_CONTENT |
XinZhangMS | 0:f7f1f0d76dd6 | 40 | |
XinZhangMS | 0:f7f1f0d76dd6 | 41 | DEFINE_ENUM(IOTHUB_DEVICECONFIGURATION_REQUEST_MODE, IOTHUB_DEVICECONFIGURATION_REQUEST_MODE_VALUES); |
XinZhangMS | 0:f7f1f0d76dd6 | 42 | |
XinZhangMS | 0:f7f1f0d76dd6 | 43 | typedef struct IOTHUB_DEVICE_CONFIGURATION_CONTENT_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 44 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 45 | const char* deviceContent; |
XinZhangMS | 0:f7f1f0d76dd6 | 46 | const char* modulesContent; |
XinZhangMS | 0:f7f1f0d76dd6 | 47 | } IOTHUB_DEVICE_CONFIGURATION_CONTENT; |
XinZhangMS | 0:f7f1f0d76dd6 | 48 | |
XinZhangMS | 0:f7f1f0d76dd6 | 49 | typedef struct IOTHUB_DEVICE_CONFIGURATION_METRICS_RESULTS_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 50 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 51 | size_t numQueries; |
XinZhangMS | 0:f7f1f0d76dd6 | 52 | const char** queryNames; |
XinZhangMS | 0:f7f1f0d76dd6 | 53 | double* results; |
XinZhangMS | 0:f7f1f0d76dd6 | 54 | } IOTHUB_DEVICE_CONFIGURATION_METRICS_RESULT; |
XinZhangMS | 0:f7f1f0d76dd6 | 55 | |
XinZhangMS | 0:f7f1f0d76dd6 | 56 | typedef struct IOTHUB_DEVICE_CONFIGURATION_METRICS_DEFINITION_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 57 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 58 | size_t numQueries; |
XinZhangMS | 0:f7f1f0d76dd6 | 59 | const char** queryNames; |
XinZhangMS | 0:f7f1f0d76dd6 | 60 | const char** queryStrings; |
XinZhangMS | 0:f7f1f0d76dd6 | 61 | } IOTHUB_DEVICE_CONFIGURATION_METRICS_DEFINITION; |
XinZhangMS | 0:f7f1f0d76dd6 | 62 | |
XinZhangMS | 0:f7f1f0d76dd6 | 63 | typedef struct IOTHUB_DEVICE_CONFIGURATION_LABEL_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 64 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 65 | size_t numLabels; |
XinZhangMS | 0:f7f1f0d76dd6 | 66 | const char** labelNames; |
XinZhangMS | 0:f7f1f0d76dd6 | 67 | const char** labelValues; |
XinZhangMS | 0:f7f1f0d76dd6 | 68 | } IOTHUB_DEVICE_CONFIGURATION_LABELS; |
XinZhangMS | 0:f7f1f0d76dd6 | 69 | |
XinZhangMS | 0:f7f1f0d76dd6 | 70 | #define IOTHUB_DEVICE_CONFIGURATION_SCHEMA_VERSION_1 "1.0" |
XinZhangMS | 0:f7f1f0d76dd6 | 71 | #define IOTHUB_DEVICE_CONFIGURATION_VERSION_1 1 |
XinZhangMS | 0:f7f1f0d76dd6 | 72 | typedef struct IOTHUB_DEVICE_CONFIGURATION_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 73 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 74 | int version; |
XinZhangMS | 0:f7f1f0d76dd6 | 75 | const char* schemaVersion; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 76 | const char* configurationId; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 77 | const char* targetCondition; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 78 | const char* eTag; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 79 | const char* createdTimeUtc; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 80 | const char* lastUpdatedTimeUtc; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 81 | int priority; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 82 | |
XinZhangMS | 0:f7f1f0d76dd6 | 83 | IOTHUB_DEVICE_CONFIGURATION_CONTENT content; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 84 | IOTHUB_DEVICE_CONFIGURATION_LABELS labels; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 85 | |
XinZhangMS | 0:f7f1f0d76dd6 | 86 | IOTHUB_DEVICE_CONFIGURATION_METRICS_RESULT systemMetricsResult; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 87 | IOTHUB_DEVICE_CONFIGURATION_METRICS_DEFINITION systemMetricsDefinition; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 88 | |
XinZhangMS | 0:f7f1f0d76dd6 | 89 | IOTHUB_DEVICE_CONFIGURATION_METRICS_RESULT metricResult; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 90 | IOTHUB_DEVICE_CONFIGURATION_METRICS_DEFINITION metricsDefinition; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 91 | } IOTHUB_DEVICE_CONFIGURATION; |
XinZhangMS | 0:f7f1f0d76dd6 | 92 | |
XinZhangMS | 0:f7f1f0d76dd6 | 93 | #define IOTHUB_DEVICE_CONFIGURATION_ADD_VERSION_1 1 |
XinZhangMS | 0:f7f1f0d76dd6 | 94 | typedef struct IOTHUB_DEVICE_CONFIGURATION_ADD_TAG |
XinZhangMS | 0:f7f1f0d76dd6 | 95 | { |
XinZhangMS | 0:f7f1f0d76dd6 | 96 | int version; |
XinZhangMS | 0:f7f1f0d76dd6 | 97 | const char* configurationId; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 98 | const char* targetCondition; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 99 | int priority; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 100 | |
XinZhangMS | 0:f7f1f0d76dd6 | 101 | IOTHUB_DEVICE_CONFIGURATION_CONTENT content; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 102 | IOTHUB_DEVICE_CONFIGURATION_LABELS labels; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 103 | IOTHUB_DEVICE_CONFIGURATION_METRICS_DEFINITION metrics; //version 1+ |
XinZhangMS | 0:f7f1f0d76dd6 | 104 | } IOTHUB_DEVICE_CONFIGURATION_ADD; |
XinZhangMS | 0:f7f1f0d76dd6 | 105 | |
XinZhangMS | 0:f7f1f0d76dd6 | 106 | /** @brief Handle to hide struct and use it in consequent APIs |
XinZhangMS | 0:f7f1f0d76dd6 | 107 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 108 | typedef struct IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_TAG* IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE; |
XinZhangMS | 0:f7f1f0d76dd6 | 109 | |
XinZhangMS | 0:f7f1f0d76dd6 | 110 | |
XinZhangMS | 0:f7f1f0d76dd6 | 111 | /** @brief Creates a IoT Hub Service Client DeviceConfiguration handle for use it in consequent APIs. |
XinZhangMS | 0:f7f1f0d76dd6 | 112 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 113 | * @param serviceClientHandle Service client handle. |
XinZhangMS | 0:f7f1f0d76dd6 | 114 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 115 | * @return A non-NULL @c IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE value that is used when |
XinZhangMS | 0:f7f1f0d76dd6 | 116 | * invoking other functions for IoT Hub DeviceConfiguration and @c NULL on failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 117 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 118 | MOCKABLE_FUNCTION(, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, IoTHubDeviceConfiguration_Create, IOTHUB_SERVICE_CLIENT_AUTH_HANDLE, serviceClientHandle); |
XinZhangMS | 0:f7f1f0d76dd6 | 119 | |
XinZhangMS | 0:f7f1f0d76dd6 | 120 | /** @brief Disposes of resources allocated by the IoT Hub IoTHubDeviceConfiguration_Create. |
XinZhangMS | 0:f7f1f0d76dd6 | 121 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 122 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 123 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 124 | MOCKABLE_FUNCTION(, void, IoTHubDeviceConfiguration_Destroy, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle); |
XinZhangMS | 0:f7f1f0d76dd6 | 125 | |
XinZhangMS | 0:f7f1f0d76dd6 | 126 | /** @brief Retrieves the Configuration info for multiple configurations from IoT Hub. |
XinZhangMS | 0:f7f1f0d76dd6 | 127 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 128 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 129 | * @param maxConfigurationsCount Maximum number of configurations requested |
XinZhangMS | 0:f7f1f0d76dd6 | 130 | * @param configurations Output parameter, if it is not NULL will contain the requested configurations |
XinZhangMS | 0:f7f1f0d76dd6 | 131 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 132 | * @return IOTHUB_DEVICE_CONFIGURATION_RESULT upon success or an error code upon failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 133 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 134 | MOCKABLE_FUNCTION(, IOTHUB_DEVICE_CONFIGURATION_RESULT, IoTHubDeviceConfiguration_GetConfigurations, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle, size_t, maxConfigurationsCount, SINGLYLINKEDLIST_HANDLE, configurationsList); |
XinZhangMS | 0:f7f1f0d76dd6 | 135 | |
XinZhangMS | 0:f7f1f0d76dd6 | 136 | /** @brief Retrieves the Configuration info for specified configurationId from IoT Hub. |
XinZhangMS | 0:f7f1f0d76dd6 | 137 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 138 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 139 | * @param configurationId The configuration name (id) to retrieve Configuration info for. |
XinZhangMS | 0:f7f1f0d76dd6 | 140 | * @param configuration Output parameter, if it is not NULL will contain the requested configuration info structure |
XinZhangMS | 0:f7f1f0d76dd6 | 141 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 142 | * @return IOTHUB_DEVICE_CONFIGURATION_RESULT upon success or an error code upon failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 143 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 144 | MOCKABLE_FUNCTION(, IOTHUB_DEVICE_CONFIGURATION_RESULT, IoTHubDeviceConfiguration_GetConfiguration, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle, const char*, configurationId, IOTHUB_DEVICE_CONFIGURATION*, configuration); |
XinZhangMS | 0:f7f1f0d76dd6 | 145 | |
XinZhangMS | 0:f7f1f0d76dd6 | 146 | /** @brief Adds the Configuration info to IoT Hub. |
XinZhangMS | 0:f7f1f0d76dd6 | 147 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 148 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 149 | * @param configurationAdd IOTHUB_DEVICE_CONFIGURATION_ADD structure containing |
XinZhangMS | 0:f7f1f0d76dd6 | 150 | * the new configuration Id and other optional parameters |
XinZhangMS | 0:f7f1f0d76dd6 | 151 | * @param configuration Output parameter, if it is not NULL will contain the created configuration info structure |
XinZhangMS | 0:f7f1f0d76dd6 | 152 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 153 | * @return IOTHUB_DEVICE_CONFIGURATION_RESULT upon success or an error code upon failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 154 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 155 | MOCKABLE_FUNCTION(, IOTHUB_DEVICE_CONFIGURATION_RESULT, IoTHubDeviceConfiguration_AddConfiguration, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle, const IOTHUB_DEVICE_CONFIGURATION_ADD*, configurationAdd, IOTHUB_DEVICE_CONFIGURATION*, configuration); |
XinZhangMS | 0:f7f1f0d76dd6 | 156 | |
XinZhangMS | 0:f7f1f0d76dd6 | 157 | /** @brief Updates the given Configuration in IoT Hub. |
XinZhangMS | 0:f7f1f0d76dd6 | 158 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 159 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 160 | * @param configuration IOTHUB_DEVICE_CONFIGURATION structure containing the new configuration info. |
XinZhangMS | 0:f7f1f0d76dd6 | 161 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 162 | * @return IOTHUB_DEVICE_CONFIGURATION_RESULT upon success or an error code upon failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 163 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 164 | MOCKABLE_FUNCTION(, IOTHUB_DEVICE_CONFIGURATION_RESULT, IoTHubDeviceConfiguration_UpdateConfiguration, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle, const IOTHUB_DEVICE_CONFIGURATION*, configuration); |
XinZhangMS | 0:f7f1f0d76dd6 | 165 | |
XinZhangMS | 0:f7f1f0d76dd6 | 166 | /** @brief Deletes the given Configuration from IoT Hub. |
XinZhangMS | 0:f7f1f0d76dd6 | 167 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 168 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 169 | * @param configurationId The configuration name (id) to delete Configuration info for. |
XinZhangMS | 0:f7f1f0d76dd6 | 170 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 171 | * @return IOTHUB_DEVICE_CONFIGURATION_RESULT upon success or an error code upon failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 172 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 173 | MOCKABLE_FUNCTION(, IOTHUB_DEVICE_CONFIGURATION_RESULT, IoTHubDeviceConfiguration_DeleteConfiguration, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle, const char*, configurationId); |
XinZhangMS | 0:f7f1f0d76dd6 | 174 | |
XinZhangMS | 0:f7f1f0d76dd6 | 175 | /** @brief Deletes the given Configuration from IoT Hub. |
XinZhangMS | 0:f7f1f0d76dd6 | 176 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 177 | * @param serviceClientDeviceConfigurationHandle The handle created by a call to the create function. |
XinZhangMS | 0:f7f1f0d76dd6 | 178 | * @param deviceOrModuleId The target device or module id for the Configuration content. |
XinZhangMS | 0:f7f1f0d76dd6 | 179 | * @param configurationContent The configuration content to be applied. |
XinZhangMS | 0:f7f1f0d76dd6 | 180 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 181 | * @return IOTHUB_DEVICE_CONFIGURATION_RESULT upon success or an error code upon failure. |
XinZhangMS | 0:f7f1f0d76dd6 | 182 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 183 | MOCKABLE_FUNCTION(, IOTHUB_DEVICE_CONFIGURATION_RESULT, IoTHubDeviceConfiguration_ApplyConfigurationContentToDeviceOrModule, IOTHUB_SERVICE_CLIENT_DEVICE_CONFIGURATION_HANDLE, serviceClientDeviceConfigurationHandle, const char*, deviceOrModuleId, const IOTHUB_DEVICE_CONFIGURATION_CONTENT*, configurationContent); |
XinZhangMS | 0:f7f1f0d76dd6 | 184 | |
XinZhangMS | 0:f7f1f0d76dd6 | 185 | |
XinZhangMS | 0:f7f1f0d76dd6 | 186 | /** |
XinZhangMS | 0:f7f1f0d76dd6 | 187 | * @brief Free members of the IOTHUB_DEVICE_CONFIGURATION structure (NOT the structure itself) |
XinZhangMS | 0:f7f1f0d76dd6 | 188 | * |
XinZhangMS | 0:f7f1f0d76dd6 | 189 | * @param configuration The structure to have its members freed. |
XinZhangMS | 0:f7f1f0d76dd6 | 190 | */ |
XinZhangMS | 0:f7f1f0d76dd6 | 191 | extern void IoTHubDeviceConfiguration_FreeConfigurationMembers(IOTHUB_DEVICE_CONFIGURATION* configuration); |
XinZhangMS | 0:f7f1f0d76dd6 | 192 | |
XinZhangMS | 0:f7f1f0d76dd6 | 193 | #ifdef __cplusplus |
XinZhangMS | 0:f7f1f0d76dd6 | 194 | } |
XinZhangMS | 0:f7f1f0d76dd6 | 195 | #endif |
XinZhangMS | 0:f7f1f0d76dd6 | 196 | |
XinZhangMS | 0:f7f1f0d76dd6 | 197 | #endif // IOTHUB_DEVICECONFIGURATION_H |