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 // This file is under development and it is subject to change
XinZhangMS 0:f7f1f0d76dd6 5
XinZhangMS 0:f7f1f0d76dd6 6 #ifndef IOTHUB_DEVICETMETHOD_H
XinZhangMS 0:f7f1f0d76dd6 7 #define IOTHUB_DEVICETMETHOD_H
XinZhangMS 0:f7f1f0d76dd6 8
XinZhangMS 0:f7f1f0d76dd6 9 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 10 extern "C"
XinZhangMS 0:f7f1f0d76dd6 11 {
XinZhangMS 0:f7f1f0d76dd6 12 #else
XinZhangMS 0:f7f1f0d76dd6 13 #endif
XinZhangMS 0:f7f1f0d76dd6 14
XinZhangMS 0:f7f1f0d76dd6 15 #include "iothub_service_client_auth.h"
XinZhangMS 0:f7f1f0d76dd6 16
XinZhangMS 0:f7f1f0d76dd6 17 #include "azure_c_shared_utility/umock_c_prod.h"
XinZhangMS 0:f7f1f0d76dd6 18
XinZhangMS 0:f7f1f0d76dd6 19 #define IOTHUB_DEVICE_METHOD_RESULT_VALUES \
XinZhangMS 0:f7f1f0d76dd6 20 IOTHUB_DEVICE_METHOD_OK, \
XinZhangMS 0:f7f1f0d76dd6 21 IOTHUB_DEVICE_METHOD_INVALID_ARG, \
XinZhangMS 0:f7f1f0d76dd6 22 IOTHUB_DEVICE_METHOD_ERROR, \
XinZhangMS 0:f7f1f0d76dd6 23 IOTHUB_DEVICE_METHOD_HTTPAPI_ERROR \
XinZhangMS 0:f7f1f0d76dd6 24
XinZhangMS 0:f7f1f0d76dd6 25 DEFINE_ENUM(IOTHUB_DEVICE_METHOD_RESULT, IOTHUB_DEVICE_METHOD_RESULT_VALUES);
XinZhangMS 0:f7f1f0d76dd6 26
XinZhangMS 0:f7f1f0d76dd6 27 /** @brief Handle to hide struct and use it in consequent APIs
XinZhangMS 0:f7f1f0d76dd6 28 */
XinZhangMS 0:f7f1f0d76dd6 29 typedef struct IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_TAG* IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_HANDLE;
XinZhangMS 0:f7f1f0d76dd6 30
XinZhangMS 0:f7f1f0d76dd6 31 /** @brief Creates a IoT Hub Service Client DeviceMethod handle for use it in consequent APIs.
XinZhangMS 0:f7f1f0d76dd6 32 *
XinZhangMS 0:f7f1f0d76dd6 33 * @param serviceClientHandle Service client handle.
XinZhangMS 0:f7f1f0d76dd6 34 *
XinZhangMS 0:f7f1f0d76dd6 35 * @return A non-NULL @c IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_HANDLE value that is used when
XinZhangMS 0:f7f1f0d76dd6 36 * invoking other functions for IoT Hub DeviceMethod and @c NULL on failure.
XinZhangMS 0:f7f1f0d76dd6 37 */
XinZhangMS 0:f7f1f0d76dd6 38 MOCKABLE_FUNCTION(, IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_HANDLE, IoTHubDeviceMethod_Create, IOTHUB_SERVICE_CLIENT_AUTH_HANDLE, serviceClientHandle);
XinZhangMS 0:f7f1f0d76dd6 39
XinZhangMS 0:f7f1f0d76dd6 40 /** @brief Disposes of resources allocated by the IoT Hub IoTHubDeviceMethod_Create.
XinZhangMS 0:f7f1f0d76dd6 41 *
XinZhangMS 0:f7f1f0d76dd6 42 * @param serviceClientDeviceMethodHandle The handle created by a call to the create function.
XinZhangMS 0:f7f1f0d76dd6 43 */
XinZhangMS 0:f7f1f0d76dd6 44 MOCKABLE_FUNCTION(, void, IoTHubDeviceMethod_Destroy, IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_HANDLE, serviceClientDeviceMethodHandle);
XinZhangMS 0:f7f1f0d76dd6 45
XinZhangMS 0:f7f1f0d76dd6 46 /** @brief Call a method on device with a given payload.
XinZhangMS 0:f7f1f0d76dd6 47 *
XinZhangMS 0:f7f1f0d76dd6 48 * @param serviceClientDeviceMethodHandle The handle created by a call to the create function.
XinZhangMS 0:f7f1f0d76dd6 49 * @param deviceId The device name (id) to call a method on.
XinZhangMS 0:f7f1f0d76dd6 50 * @param methodName The method name to call.
XinZhangMS 0:f7f1f0d76dd6 51 * @param methodPayload The message payload to send.
XinZhangMS 0:f7f1f0d76dd6 52 * @param response Output buffer for response payload.
XinZhangMS 0:f7f1f0d76dd6 53 * @param timeout Time before IoTHubDeviceMethod_InvokeModule times out.
XinZhangMS 0:f7f1f0d76dd6 54 * @param responseStatus Response status code from invocation
XinZhangMS 0:f7f1f0d76dd6 55 * @param responsePayload Output buffer for response payload.
XinZhangMS 0:f7f1f0d76dd6 56 * @param responsePayloadSize String length of responsePayload.
XinZhangMS 0:f7f1f0d76dd6 57 *
XinZhangMS 0:f7f1f0d76dd6 58 * @return An IOTHUB_DEVICE_METHOD_RESULT containing the return status.
XinZhangMS 0:f7f1f0d76dd6 59 */
XinZhangMS 0:f7f1f0d76dd6 60 MOCKABLE_FUNCTION(, IOTHUB_DEVICE_METHOD_RESULT, IoTHubDeviceMethod_Invoke, IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_HANDLE, serviceClientDeviceMethodHandle, const char*, deviceId, const char*, methodName, const char*, methodPayload, unsigned int, timeout, int*, responseStatus, unsigned char**, responsePayload, size_t*, responsePayloadSize);
XinZhangMS 0:f7f1f0d76dd6 61
XinZhangMS 0:f7f1f0d76dd6 62 /** @brief Call a method on device and a module with a given payload.
XinZhangMS 0:f7f1f0d76dd6 63 *
XinZhangMS 0:f7f1f0d76dd6 64 * @param serviceClientDeviceMethodHandle The handle created by a call to the create function.
XinZhangMS 0:f7f1f0d76dd6 65 * @param deviceId The device name (id) to call a method on.
XinZhangMS 0:f7f1f0d76dd6 66 * @param moduleId The module name (id) to call a method on.
XinZhangMS 0:f7f1f0d76dd6 67 * @param methodName The method name to call.
XinZhangMS 0:f7f1f0d76dd6 68 * @param methodPayload The message payload to send.
XinZhangMS 0:f7f1f0d76dd6 69 * @param timeout Time before IoTHubDeviceMethod_InvokeModule times out.
XinZhangMS 0:f7f1f0d76dd6 70 * @param responseStatus Response status code from invocation.
XinZhangMS 0:f7f1f0d76dd6 71 * @param responsePayload Output buffer for response payload.
XinZhangMS 0:f7f1f0d76dd6 72 * @param responsePayloadSize String length of responsePayload.
XinZhangMS 0:f7f1f0d76dd6 73 *
XinZhangMS 0:f7f1f0d76dd6 74 * @return An IOTHUB_DEVICE_METHOD_RESULT containing the return status.
XinZhangMS 0:f7f1f0d76dd6 75 */
XinZhangMS 0:f7f1f0d76dd6 76 MOCKABLE_FUNCTION(, IOTHUB_DEVICE_METHOD_RESULT, IoTHubDeviceMethod_InvokeModule, IOTHUB_SERVICE_CLIENT_DEVICE_METHOD_HANDLE, serviceClientDeviceMethodHandle, const char*, deviceId, const char*, moduleId, const char*, methodName, const char*, methodPayload, unsigned int, timeout, int*, responseStatus, unsigned char**, responsePayload, size_t*, responsePayloadSize);
XinZhangMS 0:f7f1f0d76dd6 77
XinZhangMS 0:f7f1f0d76dd6 78
XinZhangMS 0:f7f1f0d76dd6 79 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 80 }
XinZhangMS 0:f7f1f0d76dd6 81 #endif
XinZhangMS 0:f7f1f0d76dd6 82
XinZhangMS 0:f7f1f0d76dd6 83 #endif // IOTHUB_DEVICETMETHOD_H