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 #ifndef ASYNC_OPERATION_H
XinZhangMS 0:f7f1f0d76dd6 5 #define ASYNC_OPERATION_H
XinZhangMS 0:f7f1f0d76dd6 6
XinZhangMS 0:f7f1f0d76dd6 7 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 8 extern "C" {
XinZhangMS 0:f7f1f0d76dd6 9 #include <cstdint>
XinZhangMS 0:f7f1f0d76dd6 10 #include <cstddef>
XinZhangMS 0:f7f1f0d76dd6 11 #else
XinZhangMS 0:f7f1f0d76dd6 12 #include <stdint.h>
XinZhangMS 0:f7f1f0d76dd6 13 #include <stddef.h>
XinZhangMS 0:f7f1f0d76dd6 14 #endif /* __cplusplus */
XinZhangMS 0:f7f1f0d76dd6 15
XinZhangMS 0:f7f1f0d76dd6 16 #include "azure_c_shared_utility/umock_c_prod.h"
XinZhangMS 0:f7f1f0d76dd6 17
XinZhangMS 0:f7f1f0d76dd6 18 typedef struct ASYNC_OPERATION_INSTANCE_TAG* ASYNC_OPERATION_HANDLE;
XinZhangMS 0:f7f1f0d76dd6 19
XinZhangMS 0:f7f1f0d76dd6 20 typedef void(*ASYNC_OPERATION_CANCEL_HANDLER_FUNC)(ASYNC_OPERATION_HANDLE async_operation);
XinZhangMS 0:f7f1f0d76dd6 21
XinZhangMS 0:f7f1f0d76dd6 22 #define DEFINE_ASYNC_OPERATION_CONTEXT(type) \
XinZhangMS 0:f7f1f0d76dd6 23 typedef struct C3(ASYNC_OPERATION_CONTEXT_STRUCT_, type, _TAG) \
XinZhangMS 0:f7f1f0d76dd6 24 { \
XinZhangMS 0:f7f1f0d76dd6 25 ASYNC_OPERATION_CANCEL_HANDLER_FUNC async_operation_cancel_handler; \
XinZhangMS 0:f7f1f0d76dd6 26 type context; \
XinZhangMS 0:f7f1f0d76dd6 27 } C2(ASYNC_OPERATION_CONTEXT_STRUCT_, type);
XinZhangMS 0:f7f1f0d76dd6 28
XinZhangMS 0:f7f1f0d76dd6 29 #define GET_ASYNC_OPERATION_CONTEXT(type, async_operation) \
XinZhangMS 0:f7f1f0d76dd6 30 (type*)((unsigned char*)async_operation + offsetof(C2(ASYNC_OPERATION_CONTEXT_STRUCT_, type), context))
XinZhangMS 0:f7f1f0d76dd6 31
XinZhangMS 0:f7f1f0d76dd6 32 #define CREATE_ASYNC_OPERATION(type, async_operation_cancel_handler) \
XinZhangMS 0:f7f1f0d76dd6 33 async_operation_create(async_operation_cancel_handler, sizeof(C2(ASYNC_OPERATION_CONTEXT_STRUCT_, type)))
XinZhangMS 0:f7f1f0d76dd6 34
XinZhangMS 0:f7f1f0d76dd6 35 MOCKABLE_FUNCTION(, ASYNC_OPERATION_HANDLE, async_operation_create, ASYNC_OPERATION_CANCEL_HANDLER_FUNC, async_operation_cancel_handler, size_t, context_size);
XinZhangMS 0:f7f1f0d76dd6 36 MOCKABLE_FUNCTION(, void, async_operation_destroy, ASYNC_OPERATION_HANDLE, async_operation);
XinZhangMS 0:f7f1f0d76dd6 37 MOCKABLE_FUNCTION(, int, async_operation_cancel, ASYNC_OPERATION_HANDLE, async_operation);
XinZhangMS 0:f7f1f0d76dd6 38
XinZhangMS 0:f7f1f0d76dd6 39 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 40 }
XinZhangMS 0:f7f1f0d76dd6 41 #endif /* __cplusplus */
XinZhangMS 0:f7f1f0d76dd6 42
XinZhangMS 0:f7f1f0d76dd6 43 #endif /* ASYNC_OPERATION_H */