Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
uamqp/inc/azure_uamqp_c/async_operation.h@0:f7f1f0d76dd6, 2018-08-23 (annotated)
- 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?
User | Revision | Line number | New 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 */ |