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 ssl_socket.h
XinZhangMS 0:f7f1f0d76dd6 5 * @brief Implements socket creation for TLSIO adapters.
XinZhangMS 0:f7f1f0d76dd6 6 */
XinZhangMS 0:f7f1f0d76dd6 7
XinZhangMS 0:f7f1f0d76dd6 8 #ifndef AZURE_IOT_DNS_H
XinZhangMS 0:f7f1f0d76dd6 9 #define AZURE_IOT_DNS_H
XinZhangMS 0:f7f1f0d76dd6 10
XinZhangMS 0:f7f1f0d76dd6 11 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 12 extern "C" {
XinZhangMS 0:f7f1f0d76dd6 13 #endif
XinZhangMS 0:f7f1f0d76dd6 14
XinZhangMS 0:f7f1f0d76dd6 15 #include "azure_c_shared_utility/macro_utils.h"
XinZhangMS 0:f7f1f0d76dd6 16 #include "azure_c_shared_utility/umock_c_prod.h"
XinZhangMS 0:f7f1f0d76dd6 17
XinZhangMS 0:f7f1f0d76dd6 18 typedef void* DNS_ASYNC_HANDLE;
XinZhangMS 0:f7f1f0d76dd6 19
XinZhangMS 0:f7f1f0d76dd6 20 // If options are added in future, DNS_ASYNC_OPTIONS will become a struct containing the options
XinZhangMS 0:f7f1f0d76dd6 21 typedef void DNS_ASYNC_OPTIONS;
XinZhangMS 0:f7f1f0d76dd6 22
XinZhangMS 0:f7f1f0d76dd6 23 /**
XinZhangMS 0:f7f1f0d76dd6 24 * @brief Begin the process of an asynchronous DNS lookup.
XinZhangMS 0:f7f1f0d76dd6 25 *
XinZhangMS 0:f7f1f0d76dd6 26 * @param hostname The url of the host to look up.
XinZhangMS 0:f7f1f0d76dd6 27 *
XinZhangMS 0:f7f1f0d76dd6 28 * @return @c The newly created DNS_ASYNC_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 29 */
XinZhangMS 0:f7f1f0d76dd6 30 MOCKABLE_FUNCTION(, DNS_ASYNC_HANDLE, dns_async_create, const char*, hostname, DNS_ASYNC_OPTIONS*, options);
XinZhangMS 0:f7f1f0d76dd6 31
XinZhangMS 0:f7f1f0d76dd6 32 /**
XinZhangMS 0:f7f1f0d76dd6 33 * @brief Continue the lookup process and report its completion state. Must be polled repeatedly for completion.
XinZhangMS 0:f7f1f0d76dd6 34 *
XinZhangMS 0:f7f1f0d76dd6 35 * @param dns The DNS_ASYNC_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 36 *
XinZhangMS 0:f7f1f0d76dd6 37 * @return @c A bool to indicate completion.
XinZhangMS 0:f7f1f0d76dd6 38 */
XinZhangMS 0:f7f1f0d76dd6 39 MOCKABLE_FUNCTION(, bool, dns_async_is_lookup_complete, DNS_ASYNC_HANDLE, dns);
XinZhangMS 0:f7f1f0d76dd6 40
XinZhangMS 0:f7f1f0d76dd6 41 /**
XinZhangMS 0:f7f1f0d76dd6 42 * @brief Return the IPv4 of a completed lookup process. Call only after dns_async_is_lookup_complete indicates completion.
XinZhangMS 0:f7f1f0d76dd6 43 *
XinZhangMS 0:f7f1f0d76dd6 44 * @param dns The DNS_ASYNC_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 45 *
XinZhangMS 0:f7f1f0d76dd6 46 * @return @c A uint32_t IPv4 address. 0 indicates failure or not finished.
XinZhangMS 0:f7f1f0d76dd6 47 */
XinZhangMS 0:f7f1f0d76dd6 48 MOCKABLE_FUNCTION(, uint32_t, dns_async_get_ipv4, DNS_ASYNC_HANDLE, dns);
XinZhangMS 0:f7f1f0d76dd6 49
XinZhangMS 0:f7f1f0d76dd6 50 /**
XinZhangMS 0:f7f1f0d76dd6 51 * @brief Destroy the module.
XinZhangMS 0:f7f1f0d76dd6 52 *
XinZhangMS 0:f7f1f0d76dd6 53 * @param dns The DNS_ASYNC_HANDLE.
XinZhangMS 0:f7f1f0d76dd6 54 */
XinZhangMS 0:f7f1f0d76dd6 55 MOCKABLE_FUNCTION(, void, dns_async_destroy, DNS_ASYNC_HANDLE, dns);
XinZhangMS 0:f7f1f0d76dd6 56
XinZhangMS 0:f7f1f0d76dd6 57
XinZhangMS 0:f7f1f0d76dd6 58 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 59 }
XinZhangMS 0:f7f1f0d76dd6 60 #endif
XinZhangMS 0:f7f1f0d76dd6 61
XinZhangMS 0:f7f1f0d76dd6 62 #endif /* AZURE_IOT_DNS_H */