source: azure_iot_hub_f767zi/trunk/azure_iot_sdk/iothub_client/inc/internal/iothub_transport_ll_private.h@ 457

Last change on this file since 457 was 457, checked in by coas-nagasima, 4 years ago

ファイルを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-chdr;charset=UTF-8
File size: 8.3 KB
Line 
1// Copyright (c) Microsoft. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
4#ifndef IOTHUB_TRANSPORT_LL_PRIVATE_H
5#define IOTHUB_TRANSPORT_LL_PRIVATE_H
6
7#include "iothub_transport_ll.h"
8
9union IOTHUB_IDENTITY_INFO_TAG;
10typedef union IOTHUB_IDENTITY_INFO_TAG IOTHUB_IDENTITY_INFO;
11
12#include "azure_c_shared_utility/doublylinkedlist.h"
13#include "azure_c_shared_utility/strings.h"
14#include "azure_c_shared_utility/platform.h"
15#include "internal/iothub_client_authorization.h"
16#include "iothub_message.h"
17
18struct MESSAGE_DISPOSITION_CONTEXT_TAG;
19typedef struct MESSAGE_DISPOSITION_CONTEXT_TAG* MESSAGE_DISPOSITION_CONTEXT_HANDLE;
20typedef struct MESSAGE_CALLBACK_INFO_TAG
21{
22 IOTHUB_MESSAGE_HANDLE messageHandle;
23 MESSAGE_DISPOSITION_CONTEXT_HANDLE transportContext;
24}MESSAGE_CALLBACK_INFO;
25
26#include "iothub_client_ll.h"
27
28#ifdef __cplusplus
29extern "C"
30{
31#endif
32
33 typedef bool (*pfTransport_MessageCallbackFromInput)(MESSAGE_CALLBACK_INFO* messageData, void* ctx);
34 typedef bool (*pfTransport_MessageCallback)(MESSAGE_CALLBACK_INFO* messageData, void* ctx);
35 typedef void (*pfTransport_ConnectionStatusCallBack)(IOTHUB_CLIENT_CONNECTION_STATUS status, IOTHUB_CLIENT_CONNECTION_STATUS_REASON reason, void* ctx);
36 typedef void (*pfTransport_SendComplete_Callback)(PDLIST_ENTRY completed, IOTHUB_CLIENT_CONFIRMATION_RESULT result, void* ctx);
37 typedef const char* (*pfTransport_GetOption_Product_Info_Callback)(void* ctx);
38 typedef void (*pfTransport_Twin_ReportedStateComplete_Callback)(uint32_t item_id, int status_code, void* ctx);
39 typedef void (*pfTransport_Twin_RetrievePropertyComplete_Callback)(DEVICE_TWIN_UPDATE_STATE update_state, const unsigned char* payLoad, size_t size, void* ctx);
40 typedef int (*pfTransport_DeviceMethod_Complete_Callback)(const char* method_name, const unsigned char* payLoad, size_t size, METHOD_HANDLE response_id, void* ctx);
41 typedef const char* (*pfTransport_GetOption_Model_Id_Callback)(void* ctx);
42
43 /** @brief This struct captures device configuration. */
44 typedef struct IOTHUB_DEVICE_CONFIG_TAG
45 {
46 /** @brief A string that identifies the device. */
47 const char* deviceId;
48
49 /** @brief The device key used to authenticate the device. */
50 const char* deviceKey;
51
52 /** @brief The device SAS used to authenticate the device in place of using the device key. */
53 const char* deviceSasToken;
54
55 IOTHUB_AUTHORIZATION_HANDLE authorization_module; // with either SAS Token, x509 Certs, and Device SAS Token
56
57 /** @brief A string that identifies the module. Optional. */
58 const char* moduleId;
59 } IOTHUB_DEVICE_CONFIG;
60
61 typedef struct TRANSPORT_CALLBACKS_INFO_TAG
62 {
63 pfTransport_MessageCallbackFromInput msg_input_cb;
64 pfTransport_MessageCallback msg_cb;
65 pfTransport_ConnectionStatusCallBack connection_status_cb;
66 pfTransport_SendComplete_Callback send_complete_cb;
67 pfTransport_GetOption_Product_Info_Callback prod_info_cb;
68 pfTransport_Twin_ReportedStateComplete_Callback twin_rpt_state_complete_cb;
69 pfTransport_Twin_RetrievePropertyComplete_Callback twin_retrieve_prop_complete_cb;
70 pfTransport_DeviceMethod_Complete_Callback method_complete_cb;
71 pfTransport_GetOption_Model_Id_Callback get_model_id_cb;
72 } TRANSPORT_CALLBACKS_INFO;
73
74 typedef STRING_HANDLE (*pfIoTHubTransport_GetHostname)(TRANSPORT_LL_HANDLE handle);
75 typedef IOTHUB_CLIENT_RESULT(*pfIoTHubTransport_SetOption)(TRANSPORT_LL_HANDLE handle, const char *optionName, const void* value);
76 typedef TRANSPORT_LL_HANDLE(*pfIoTHubTransport_Create)(const IOTHUBTRANSPORT_CONFIG* config, TRANSPORT_CALLBACKS_INFO* cb_info, void* ctx);
77 typedef void (*pfIoTHubTransport_Destroy)(TRANSPORT_LL_HANDLE handle);
78 typedef IOTHUB_DEVICE_HANDLE(*pfIotHubTransport_Register)(TRANSPORT_LL_HANDLE handle, const IOTHUB_DEVICE_CONFIG* device, PDLIST_ENTRY waitingToSend);
79 typedef void(*pfIotHubTransport_Unregister)(IOTHUB_DEVICE_HANDLE deviceHandle);
80 typedef int (*pfIoTHubTransport_Subscribe)(IOTHUB_DEVICE_HANDLE handle);
81 typedef void (*pfIoTHubTransport_Unsubscribe)(IOTHUB_DEVICE_HANDLE handle);
82 typedef void (*pfIoTHubTransport_DoWork)(TRANSPORT_LL_HANDLE handle);
83 typedef int(*pfIoTHubTransport_SetRetryPolicy)(TRANSPORT_LL_HANDLE handle, IOTHUB_CLIENT_RETRY_POLICY retryPolicy, size_t retryTimeoutLimitInSeconds);
84 typedef IOTHUB_CLIENT_RESULT(*pfIoTHubTransport_GetSendStatus)(IOTHUB_DEVICE_HANDLE handle, IOTHUB_CLIENT_STATUS *iotHubClientStatus);
85 typedef int (*pfIoTHubTransport_Subscribe_DeviceTwin)(IOTHUB_DEVICE_HANDLE handle);
86 typedef void (*pfIoTHubTransport_Unsubscribe_DeviceTwin)(IOTHUB_DEVICE_HANDLE handle);
87 typedef IOTHUB_CLIENT_RESULT(*pfIoTHubTransport_GetTwinAsync)(IOTHUB_DEVICE_HANDLE handle, IOTHUB_CLIENT_DEVICE_TWIN_CALLBACK completionCallback, void* callbackContext);
88 typedef IOTHUB_CLIENT_RESULT(*pfIotHubTransport_SendMessageDisposition)(MESSAGE_CALLBACK_INFO* messageData, IOTHUBMESSAGE_DISPOSITION_RESULT disposition);
89 typedef IOTHUB_PROCESS_ITEM_RESULT(*pfIoTHubTransport_ProcessItem)(TRANSPORT_LL_HANDLE handle, IOTHUB_IDENTITY_TYPE item_type, IOTHUB_IDENTITY_INFO* iothub_item);
90 typedef int(*pfIoTHubTransport_Subscribe_DeviceMethod)(IOTHUB_DEVICE_HANDLE handle);
91 typedef void(*pfIoTHubTransport_Unsubscribe_DeviceMethod)(IOTHUB_DEVICE_HANDLE handle);
92 typedef int(*pfIoTHubTransport_DeviceMethod_Response)(IOTHUB_DEVICE_HANDLE handle, METHOD_HANDLE methodId, const unsigned char* response, size_t response_size, int status_response);
93 typedef int(*pfIoTHubTransport_Subscribe_InputQueue)(IOTHUB_DEVICE_HANDLE handle);
94 typedef void(*pfIoTHubTransport_Unsubscribe_InputQueue)(IOTHUB_DEVICE_HANDLE handle);
95 typedef int(*pfIoTHubTransport_SetCallbackContext)(TRANSPORT_LL_HANDLE handle, void* ctx);
96 typedef int(*pfIoTHubTransport_GetSupportedPlatformInfo)(TRANSPORT_LL_HANDLE handle, PLATFORM_INFO_OPTION* info);
97
98#define TRANSPORT_PROVIDER_FIELDS \
99pfIotHubTransport_SendMessageDisposition IoTHubTransport_SendMessageDisposition; \
100pfIoTHubTransport_Subscribe_DeviceMethod IoTHubTransport_Subscribe_DeviceMethod; \
101pfIoTHubTransport_Unsubscribe_DeviceMethod IoTHubTransport_Unsubscribe_DeviceMethod;\
102pfIoTHubTransport_DeviceMethod_Response IoTHubTransport_DeviceMethod_Response; \
103pfIoTHubTransport_Subscribe_DeviceTwin IoTHubTransport_Subscribe_DeviceTwin; \
104pfIoTHubTransport_Unsubscribe_DeviceTwin IoTHubTransport_Unsubscribe_DeviceTwin; \
105pfIoTHubTransport_ProcessItem IoTHubTransport_ProcessItem; \
106pfIoTHubTransport_GetHostname IoTHubTransport_GetHostname; \
107pfIoTHubTransport_SetOption IoTHubTransport_SetOption; \
108pfIoTHubTransport_Create IoTHubTransport_Create; \
109pfIoTHubTransport_Destroy IoTHubTransport_Destroy; \
110pfIotHubTransport_Register IoTHubTransport_Register; \
111pfIotHubTransport_Unregister IoTHubTransport_Unregister; \
112pfIoTHubTransport_Subscribe IoTHubTransport_Subscribe; \
113pfIoTHubTransport_Unsubscribe IoTHubTransport_Unsubscribe; \
114pfIoTHubTransport_DoWork IoTHubTransport_DoWork; \
115pfIoTHubTransport_SetRetryPolicy IoTHubTransport_SetRetryPolicy; \
116pfIoTHubTransport_GetSendStatus IoTHubTransport_GetSendStatus; \
117pfIoTHubTransport_Subscribe_InputQueue IoTHubTransport_Subscribe_InputQueue; \
118pfIoTHubTransport_Unsubscribe_InputQueue IoTHubTransport_Unsubscribe_InputQueue; \
119pfIoTHubTransport_SetCallbackContext IoTHubTransport_SetCallbackContext; \
120pfIoTHubTransport_GetTwinAsync IoTHubTransport_GetTwinAsync; \
121pfIoTHubTransport_GetSupportedPlatformInfo IoTHubTransport_GetSupportedPlatformInfo /*there's an intentional missing ; on this line*/
122
123 struct TRANSPORT_PROVIDER_TAG
124 {
125 TRANSPORT_PROVIDER_FIELDS;
126 };
127
128 MOCKABLE_FUNCTION(, int, IoTHub_Transport_ValidateCallbacks, const TRANSPORT_CALLBACKS_INFO*, transport_cb);
129
130#ifdef __cplusplus
131}
132#endif
133
134#endif /* IOTHUB_TRANSPORT_LL_PRIVATE_H */
Note: See TracBrowser for help on using the repository browser.