Microsoft Azure IoTHub client libraries
Dependents: sht15_remote_monitoring RobotArmDemo iothub_client_sample_amqp f767zi_mqtt ... more
This library implements the Microsoft Azure IoTHub client library. The code is replicated from https://github.com/Azure/azure-iot-sdks
Diff: iothubtransport.c
- Revision:
- 88:248736be106e
- Parent:
- 71:0d498da5ece1
- Child:
- 89:a2ed767a532e
diff -r 127f440f845b -r 248736be106e iothubtransport.c --- a/iothubtransport.c Fri May 04 13:24:17 2018 -0700 +++ b/iothubtransport.c Mon Jun 11 15:39:23 2018 -0700 @@ -2,18 +2,20 @@ // Licensed under the MIT license. See LICENSE file in the project root for full license information. #include <stdlib.h> -#include "azure_c_shared_utility/gballoc.h" #include <signal.h> #include <stddef.h> +#include "azure_c_shared_utility/gballoc.h" #include "azure_c_shared_utility/crt_abstractions.h" -#include "iothubtransport.h" -#include "iothub_client.h" -#include "iothub_client_private.h" #include "azure_c_shared_utility/threadapi.h" #include "azure_c_shared_utility/lock.h" #include "azure_c_shared_utility/xlogging.h" #include "azure_c_shared_utility/vector.h" +#include "internal/iothubtransport.h" +#include "internal/iothub_client_private.h" +#include "iothub_transport_ll.h" +#include "iothub_client_core.h" + typedef struct TRANSPORT_HANDLE_DATA_TAG { TRANSPORT_LL_HANDLE transportLLHandle; @@ -29,7 +31,7 @@ /* Used for Unit test */ const size_t IoTHubTransport_ThreadTerminationOffset = offsetof(TRANSPORT_HANDLE_DATA, stopThread); -TRANSPORT_HANDLE IoTHubTransport_Create(IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol, const char* iotHubName, const char* iotHubSuffix) +TRANSPORT_HANDLE IoTHubTransport_Create(IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol, const char* iotHubName, const char* iotHubSuffix) { TRANSPORT_HANDLE_DATA *result; @@ -97,8 +99,8 @@ } else { - /*Codes_SRS_IOTHUBTRANSPORT_17_038: [ IoTHubTransport_Create shall call VECTOR_Create to make a list of IOTHUB_CLIENT_HANDLE using this transport. ]*/ - result->clients = VECTOR_create(sizeof(IOTHUB_CLIENT_HANDLE)); + /*Codes_SRS_IOTHUBTRANSPORT_17_038: [ IoTHubTransport_Create shall call VECTOR_Create to make a list of IOTHUB_CLIENT_CORE_HANDLE using this transport. ]*/ + result->clients = VECTOR_create(sizeof(IOTHUB_CLIENT_CORE_HANDLE)); if (result->clients == NULL) { /*Codes_SRS_IOTHUBTRANSPORT_17_039: [ If the Vector creation fails, IoTHubTransport_Create shall return NULL. ]*/ @@ -150,7 +152,7 @@ numberOfClients = VECTOR_size(transportData->clients); for (iterator = 0; iterator < numberOfClients; iterator++) { - IOTHUB_CLIENT_HANDLE* clientHandle = (IOTHUB_CLIENT_HANDLE*)VECTOR_element(transportData->clients, iterator); + IOTHUB_CLIENT_CORE_HANDLE* clientHandle = (IOTHUB_CLIENT_CORE_HANDLE*)VECTOR_element(transportData->clients, iterator); if (clientHandle != NULL) { @@ -202,12 +204,12 @@ static bool find_by_handle(const void* element, const void* value) { /* data stored at element is device handle */ - const IOTHUB_CLIENT_HANDLE * guess = (const IOTHUB_CLIENT_HANDLE *)element; - const IOTHUB_CLIENT_HANDLE match = (const IOTHUB_CLIENT_HANDLE)value; + const IOTHUB_CLIENT_CORE_HANDLE * guess = (const IOTHUB_CLIENT_CORE_HANDLE *)element; + const IOTHUB_CLIENT_CORE_HANDLE match = (const IOTHUB_CLIENT_CORE_HANDLE)value; return (*guess == match); } -static IOTHUB_CLIENT_RESULT start_worker_if_needed(TRANSPORT_HANDLE_DATA * transportData, IOTHUB_CLIENT_HANDLE clientHandle) +static IOTHUB_CLIENT_RESULT start_worker_if_needed(TRANSPORT_HANDLE_DATA * transportData, IOTHUB_CLIENT_CORE_HANDLE clientHandle) { IOTHUB_CLIENT_RESULT result; if (transportData->workerThreadHandle == NULL) @@ -285,7 +287,7 @@ } } -static bool signal_end_worker_thread(TRANSPORT_HANDLE_DATA * transportData, IOTHUB_CLIENT_HANDLE clientHandle) +static bool signal_end_worker_thread(TRANSPORT_HANDLE_DATA * transportData, IOTHUB_CLIENT_CORE_HANDLE clientHandle) { bool okToJoin; @@ -389,7 +391,7 @@ return llTransport; } -IOTHUB_CLIENT_RESULT IoTHubTransport_StartWorkerThread(TRANSPORT_HANDLE transportHandle, IOTHUB_CLIENT_HANDLE clientHandle, IOTHUB_CLIENT_MULTIPLEXED_DO_WORK muxDoWork) +IOTHUB_CLIENT_RESULT IoTHubTransport_StartWorkerThread(TRANSPORT_HANDLE transportHandle, IOTHUB_CLIENT_CORE_HANDLE clientHandle, IOTHUB_CLIENT_MULTIPLEXED_DO_WORK muxDoWork) { IOTHUB_CLIENT_RESULT result; if (transportHandle == NULL || clientHandle == NULL) @@ -421,7 +423,7 @@ return result; } -bool IoTHubTransport_SignalEndWorkerThread(TRANSPORT_HANDLE transportHandle, IOTHUB_CLIENT_HANDLE clientHandle) +bool IoTHubTransport_SignalEndWorkerThread(TRANSPORT_HANDLE transportHandle, IOTHUB_CLIENT_CORE_HANDLE clientHandle) { bool okToJoin; /*Codes_SRS_IOTHUBTRANSPORT_17_023: [ If transportHandle is NULL, IoTHubTransport_EndWorkerThread shall return. ]*/ @@ -438,7 +440,7 @@ return okToJoin; } -void IoTHubTransport_JoinWorkerThread(TRANSPORT_HANDLE transportHandle, IOTHUB_CLIENT_HANDLE clientHandle) +void IoTHubTransport_JoinWorkerThread(TRANSPORT_HANDLE transportHandle, IOTHUB_CLIENT_CORE_HANDLE clientHandle) { /*Codes_SRS_IOTHUBTRANSPORT_17_044: [ If transportHandle is NULL, IoTHubTransport_JoinWorkerThread shall do nothing. ]*/ /*Codes_SRS_IOTHUBTRANSPORT_17_045: [ If clientHandle is NULL, IoTHubTransport_JoinWorkerThread shall do nothing. ]*/