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/link.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 LINK_H |
| XinZhangMS | 0:f7f1f0d76dd6 | 5 | #define LINK_H |
| XinZhangMS | 0:f7f1f0d76dd6 | 6 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 7 | #include <stddef.h> |
| XinZhangMS | 0:f7f1f0d76dd6 | 8 | #include "azure_c_shared_utility/tickcounter.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 9 | #include "azure_c_shared_utility/macro_utils.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 10 | #include "azure_uamqp_c/session.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 11 | #include "azure_uamqp_c/amqpvalue.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 12 | #include "azure_uamqp_c/async_operation.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 13 | #include "azure_uamqp_c/amqp_definitions_sender_settle_mode.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 14 | #include "azure_uamqp_c/amqp_definitions_receiver_settle_mode.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 15 | #include "azure_uamqp_c/amqp_definitions_fields.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 16 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 17 | #ifdef __cplusplus |
| XinZhangMS | 0:f7f1f0d76dd6 | 18 | extern "C" { |
| XinZhangMS | 0:f7f1f0d76dd6 | 19 | #endif /* __cplusplus */ |
| XinZhangMS | 0:f7f1f0d76dd6 | 20 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 21 | #include "azure_c_shared_utility/umock_c_prod.h" |
| XinZhangMS | 0:f7f1f0d76dd6 | 22 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 23 | typedef struct LINK_INSTANCE_TAG* LINK_HANDLE; |
| XinZhangMS | 0:f7f1f0d76dd6 | 24 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 25 | #define LINK_STATE_VALUES \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 26 | LINK_STATE_DETACHED, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 27 | LINK_STATE_HALF_ATTACHED_ATTACH_SENT, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 28 | LINK_STATE_HALF_ATTACHED_ATTACH_RECEIVED, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 29 | LINK_STATE_ATTACHED, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 30 | LINK_STATE_ERROR |
| XinZhangMS | 0:f7f1f0d76dd6 | 31 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 32 | DEFINE_ENUM(LINK_STATE, LINK_STATE_VALUES) |
| XinZhangMS | 0:f7f1f0d76dd6 | 33 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 34 | #define LINK_TRANSFER_RESULT_VALUES \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 35 | LINK_TRANSFER_ERROR, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 36 | LINK_TRANSFER_BUSY |
| XinZhangMS | 0:f7f1f0d76dd6 | 37 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 38 | DEFINE_ENUM(LINK_TRANSFER_RESULT, LINK_TRANSFER_RESULT_VALUES) |
| XinZhangMS | 0:f7f1f0d76dd6 | 39 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 40 | #define LINK_DELIVERY_SETTLE_REASON_VALUES \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 41 | LINK_DELIVERY_SETTLE_REASON_DISPOSITION_RECEIVED, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 42 | LINK_DELIVERY_SETTLE_REASON_SETTLED, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 43 | LINK_DELIVERY_SETTLE_REASON_NOT_DELIVERED, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 44 | LINK_DELIVERY_SETTLE_REASON_TIMEOUT, \ |
| XinZhangMS | 0:f7f1f0d76dd6 | 45 | LINK_DELIVERY_SETTLE_REASON_CANCELLED |
| XinZhangMS | 0:f7f1f0d76dd6 | 46 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 47 | DEFINE_ENUM(LINK_DELIVERY_SETTLE_REASON, LINK_DELIVERY_SETTLE_REASON_VALUES) |
| XinZhangMS | 0:f7f1f0d76dd6 | 48 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 49 | typedef struct ON_LINK_DETACH_EVENT_SUBSCRIPTION_TAG* ON_LINK_DETACH_EVENT_SUBSCRIPTION_HANDLE; |
| XinZhangMS | 0:f7f1f0d76dd6 | 50 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 51 | typedef void(*ON_DELIVERY_SETTLED)(void* context, delivery_number delivery_no, LINK_DELIVERY_SETTLE_REASON reason, AMQP_VALUE delivery_state); |
| XinZhangMS | 0:f7f1f0d76dd6 | 52 | typedef AMQP_VALUE(*ON_TRANSFER_RECEIVED)(void* context, TRANSFER_HANDLE transfer, uint32_t payload_size, const unsigned char* payload_bytes); |
| XinZhangMS | 0:f7f1f0d76dd6 | 53 | typedef void(*ON_LINK_STATE_CHANGED)(void* context, LINK_STATE new_link_state, LINK_STATE previous_link_state); |
| XinZhangMS | 0:f7f1f0d76dd6 | 54 | typedef void(*ON_LINK_FLOW_ON)(void* context); |
| XinZhangMS | 0:f7f1f0d76dd6 | 55 | typedef void(*ON_LINK_DETACH_RECEIVED)(void* context, ERROR_HANDLE error); |
| XinZhangMS | 0:f7f1f0d76dd6 | 56 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 57 | MOCKABLE_FUNCTION(, LINK_HANDLE, link_create, SESSION_HANDLE, session, const char*, name, role, role, AMQP_VALUE, source, AMQP_VALUE, target); |
| XinZhangMS | 0:f7f1f0d76dd6 | 58 | MOCKABLE_FUNCTION(, LINK_HANDLE, link_create_from_endpoint, SESSION_HANDLE, session, LINK_ENDPOINT_HANDLE, link_endpoint, const char*, name, role, role, AMQP_VALUE, source, AMQP_VALUE, target); |
| XinZhangMS | 0:f7f1f0d76dd6 | 59 | MOCKABLE_FUNCTION(, void, link_destroy, LINK_HANDLE, handle); |
| XinZhangMS | 0:f7f1f0d76dd6 | 60 | MOCKABLE_FUNCTION(, int, link_set_snd_settle_mode, LINK_HANDLE, link, sender_settle_mode, snd_settle_mode); |
| XinZhangMS | 0:f7f1f0d76dd6 | 61 | MOCKABLE_FUNCTION(, int, link_get_snd_settle_mode, LINK_HANDLE, link, sender_settle_mode*, snd_settle_mode); |
| XinZhangMS | 0:f7f1f0d76dd6 | 62 | MOCKABLE_FUNCTION(, int, link_set_rcv_settle_mode, LINK_HANDLE, link, receiver_settle_mode, rcv_settle_mode); |
| XinZhangMS | 0:f7f1f0d76dd6 | 63 | MOCKABLE_FUNCTION(, int, link_get_rcv_settle_mode, LINK_HANDLE, link, receiver_settle_mode*, rcv_settle_mode); |
| XinZhangMS | 0:f7f1f0d76dd6 | 64 | MOCKABLE_FUNCTION(, int, link_set_initial_delivery_count, LINK_HANDLE, link, sequence_no, initial_delivery_count); |
| XinZhangMS | 0:f7f1f0d76dd6 | 65 | MOCKABLE_FUNCTION(, int, link_get_initial_delivery_count, LINK_HANDLE, link, sequence_no*, initial_delivery_count); |
| XinZhangMS | 0:f7f1f0d76dd6 | 66 | MOCKABLE_FUNCTION(, int, link_set_max_message_size, LINK_HANDLE, link, uint64_t, max_message_size); |
| XinZhangMS | 0:f7f1f0d76dd6 | 67 | MOCKABLE_FUNCTION(, int, link_get_max_message_size, LINK_HANDLE, link, uint64_t*, max_message_size); |
| XinZhangMS | 0:f7f1f0d76dd6 | 68 | MOCKABLE_FUNCTION(, int, link_get_peer_max_message_size, LINK_HANDLE, link, uint64_t*, peer_max_message_size); |
| XinZhangMS | 0:f7f1f0d76dd6 | 69 | MOCKABLE_FUNCTION(, int, link_set_attach_properties, LINK_HANDLE, link, fields, attach_properties); |
| XinZhangMS | 0:f7f1f0d76dd6 | 70 | MOCKABLE_FUNCTION(, int, link_set_max_link_credit, LINK_HANDLE, link, uint32_t, max_link_credit); |
| XinZhangMS | 0:f7f1f0d76dd6 | 71 | MOCKABLE_FUNCTION(, int, link_get_name, LINK_HANDLE, link, const char**, link_name); |
| XinZhangMS | 0:f7f1f0d76dd6 | 72 | MOCKABLE_FUNCTION(, int, link_get_received_message_id, LINK_HANDLE, link, delivery_number*, message_id); |
| XinZhangMS | 0:f7f1f0d76dd6 | 73 | MOCKABLE_FUNCTION(, int, link_send_disposition, LINK_HANDLE, link, delivery_number, message_number, AMQP_VALUE, delivery_state); |
| XinZhangMS | 0:f7f1f0d76dd6 | 74 | MOCKABLE_FUNCTION(, int, link_attach, LINK_HANDLE, link, ON_TRANSFER_RECEIVED, on_transfer_received, ON_LINK_STATE_CHANGED, on_link_state_changed, ON_LINK_FLOW_ON, on_link_flow_on, void*, callback_context); |
| XinZhangMS | 0:f7f1f0d76dd6 | 75 | MOCKABLE_FUNCTION(, int, link_detach, LINK_HANDLE, link, bool, close, const char*, error_condition, const char*, error_description, AMQP_VALUE, info); |
| XinZhangMS | 0:f7f1f0d76dd6 | 76 | MOCKABLE_FUNCTION(, ASYNC_OPERATION_HANDLE, link_transfer_async, LINK_HANDLE, handle, message_format, message_format, PAYLOAD*, payloads, size_t, payload_count, ON_DELIVERY_SETTLED, on_delivery_settled, void*, callback_context, LINK_TRANSFER_RESULT*, link_transfer_result,tickcounter_ms_t, timeout); |
| XinZhangMS | 0:f7f1f0d76dd6 | 77 | MOCKABLE_FUNCTION(, void, link_dowork, LINK_HANDLE, link); |
| XinZhangMS | 0:f7f1f0d76dd6 | 78 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 79 | MOCKABLE_FUNCTION(, ON_LINK_DETACH_EVENT_SUBSCRIPTION_HANDLE, link_subscribe_on_link_detach_received, LINK_HANDLE, link, ON_LINK_DETACH_RECEIVED, on_link_detach_received, void*, context); |
| XinZhangMS | 0:f7f1f0d76dd6 | 80 | MOCKABLE_FUNCTION(, void, link_unsubscribe_on_link_detach_received, ON_LINK_DETACH_EVENT_SUBSCRIPTION_HANDLE, event_subscription); |
| XinZhangMS | 0:f7f1f0d76dd6 | 81 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 82 | #ifdef __cplusplus |
| XinZhangMS | 0:f7f1f0d76dd6 | 83 | } |
| XinZhangMS | 0:f7f1f0d76dd6 | 84 | #endif /* __cplusplus */ |
| XinZhangMS | 0:f7f1f0d76dd6 | 85 | |
| XinZhangMS | 0:f7f1f0d76dd6 | 86 | #endif /* LINK_H */ |