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
iothub_client_ll.h
- Committer:
- AzureIoTClient
- Date:
- 2015-09-15
- Revision:
- 0:e393db310d89
- Child:
- 9:3ec7e2695f98
File content as of revision 0:e393db310d89:
// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. #ifndef IOTHUB_CLIENT_LL_H #define IOTHUB_CLIENT_LL_H #include "agenttime.h" #include "macro_utils.h" #include "iothub_message.h" #ifdef __cplusplus extern "C" { #endif #define IOTHUB_CLIENT_RESULT_VALUES \ IOTHUB_CLIENT_OK, \ IOTHUB_CLIENT_INVALID_ARG, \ IOTHUB_CLIENT_ERROR, \ IOTHUB_CLIENT_INVALID_SIZE, \ IOTHUB_CLIENT_INDEFINITE_TIME \ DEFINE_ENUM(IOTHUB_CLIENT_RESULT, IOTHUB_CLIENT_RESULT_VALUES); #define IOTHUB_CLIENT_CONFIRMATION_RESULT_VALUES \ IOTHUB_CLIENT_CONFIRMATION_OK, \ IOTHUB_CLIENT_CONFIRMATION_BECAUSE_DESTROY, \ IOTHUB_CLIENT_CONFIRMATION_ERROR \ DEFINE_ENUM(IOTHUB_CLIENT_CONFIRMATION_RESULT, IOTHUB_CLIENT_CONFIRMATION_RESULT_VALUES); #define IOTHUB_CLIENT_STATUS_VALUES \ IOTHUB_CLIENT_SEND_STATUS_IDLE, \ IOTHUB_CLIENT_SEND_STATUS_BUSY \ DEFINE_ENUM(IOTHUB_CLIENT_STATUS, IOTHUB_CLIENT_STATUS_VALUES); #define TRANSPORT_TYPE_VALUES \ TRANSPORT_LL, /*LL comes from "LowLevel" */ \ TRANSPORT_THREADED DEFINE_ENUM(TRANSPORT_TYPE, TRANSPORT_TYPE_VALUES); #define IOTHUBMESSAGE_DISPOSITION_RESULT_VALUES \ IOTHUBMESSAGE_ACCEPTED, \ IOTHUBMESSAGE_REJECTED, \ IOTHUBMESSAGE_ABANDONED DEFINE_ENUM(IOTHUBMESSAGE_DISPOSITION_RESULT, IOTHUBMESSAGE_DISPOSITION_RESULT_VALUES); typedef void* IOTHUB_CLIENT_LL_HANDLE; typedef void(*IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK)(IOTHUB_CLIENT_CONFIRMATION_RESULT result, void* userContextCallback); typedef IOTHUBMESSAGE_DISPOSITION_RESULT (*IOTHUB_CLIENT_NOTIFICATION_CALLBACK_ASYNC)(IOTHUB_MESSAGE_HANDLE notificationMessage, void* userContextCallback); typedef const void*(*IOTHUB_CLIENT_TRANSPORT_PROVIDER)(void); typedef struct IOTHUB_CLIENT_CONFIG_TAG { IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol; const char* deviceId; const char* deviceKey; const char* iotHubName; const char* iotHubSuffix; const char* protocolGatewayHostName; } IOTHUB_CLIENT_CONFIG; extern IOTHUB_CLIENT_LL_HANDLE IoTHubClient_LL_CreateFromConnectionString(const char* connectionString, IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol); extern IOTHUB_CLIENT_LL_HANDLE IoTHubClient_LL_Create(const IOTHUB_CLIENT_CONFIG* config); extern void IoTHubClient_LL_Destroy(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle); extern IOTHUB_CLIENT_RESULT IoTHubClient_LL_SendEventAsync(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_MESSAGE_HANDLE eventMessageHandle, IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK eventConfirmationCallback, void* userContextCallback); extern IOTHUB_CLIENT_RESULT IoTHubClient_LL_GetSendStatus(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_STATUS *iotHubClientStatus); extern IOTHUB_CLIENT_RESULT IoTHubClient_LL_SetNotificationCallback(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle, IOTHUB_CLIENT_NOTIFICATION_CALLBACK_ASYNC notificationCallback, void* userContextCallback); extern IOTHUB_CLIENT_RESULT IoTHubClient_LL_GetLastNotificationReceiveTime(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle, time_t* lastNotificationReceiveTime); extern void IoTHubClient_LL_DoWork(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle); extern IOTHUB_CLIENT_RESULT IoTHubClient_LL_SetOption(IOTHUB_CLIENT_LL_HANDLE iotHubClientHandle, const char* optionName, const void* value); #ifdef __cplusplus } #endif #endif /* IOTHUB_CLIENT_LL_H */