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.
Dependencies: EthernetInterface NTPClient iothub_amqp_transport iothub_client mbed-rtos mbed
Fork of iothub_client_sample_amqp by
session.h
00001 // Copyright (c) Microsoft. All rights reserved. 00002 // Licensed under the MIT license. See LICENSE file in the project root for full license information. 00003 00004 #ifndef SESSION_H 00005 #define SESSION_H 00006 00007 #include <stdint.h> 00008 #include "azure_uamqp_c/amqpvalue.h" 00009 #include "azure_uamqp_c/amqp_frame_codec.h" 00010 #include "azure_uamqp_c/connection.h" 00011 00012 #ifdef __cplusplus 00013 extern "C" { 00014 #endif /* __cplusplus */ 00015 00016 #include "azure_c_shared_utility/umock_c_prod.h" 00017 00018 typedef struct SESSION_INSTANCE_TAG* SESSION_HANDLE; 00019 typedef struct LINK_ENDPOINT_INSTANCE_TAG* LINK_ENDPOINT_HANDLE; 00020 00021 typedef enum SESION_STATE_TAG 00022 { 00023 SESSION_STATE_UNMAPPED, 00024 SESSION_STATE_BEGIN_SENT, 00025 SESSION_STATE_BEGIN_RCVD, 00026 SESSION_STATE_MAPPED, 00027 SESSION_STATE_END_SENT, 00028 SESSION_STATE_END_RCVD, 00029 SESSION_STATE_DISCARDING, 00030 SESSION_STATE_ERROR 00031 } SESSION_STATE; 00032 00033 typedef enum SESSION_SEND_TRANSFER_RESULT_TAG 00034 { 00035 SESSION_SEND_TRANSFER_OK, 00036 SESSION_SEND_TRANSFER_ERROR, 00037 SESSION_SEND_TRANSFER_BUSY 00038 } SESSION_SEND_TRANSFER_RESULT; 00039 00040 typedef void(*LINK_ENDPOINT_FRAME_RECEIVED_CALLBACK)(void* context, AMQP_VALUE performative, uint32_t frame_payload_size, const unsigned char* payload_bytes); 00041 typedef void(*ON_SESSION_STATE_CHANGED)(void* context, SESSION_STATE new_session_state, SESSION_STATE previous_session_state); 00042 typedef void(*ON_SESSION_FLOW_ON)(void* context); 00043 typedef bool(*ON_LINK_ATTACHED)(void* context, LINK_ENDPOINT_HANDLE new_link_endpoint, const char* name, role role, AMQP_VALUE source, AMQP_VALUE target); 00044 00045 MOCKABLE_FUNCTION(, SESSION_HANDLE, session_create, CONNECTION_HANDLE, connection, ON_LINK_ATTACHED, on_link_attached, void*, callback_context); 00046 MOCKABLE_FUNCTION(, SESSION_HANDLE, session_create_from_endpoint, CONNECTION_HANDLE, connection, ENDPOINT_HANDLE, connection_endpoint, ON_LINK_ATTACHED, on_link_attached, void*, callback_context); 00047 MOCKABLE_FUNCTION(, int, session_set_incoming_window, SESSION_HANDLE, session, uint32_t, incoming_window); 00048 MOCKABLE_FUNCTION(, int, session_get_incoming_window, SESSION_HANDLE, session, uint32_t*, incoming_window); 00049 MOCKABLE_FUNCTION(, int, session_set_outgoing_window, SESSION_HANDLE, session, uint32_t, outgoing_window); 00050 MOCKABLE_FUNCTION(, int, session_get_outgoing_window, SESSION_HANDLE, session, uint32_t*, outgoing_window); 00051 MOCKABLE_FUNCTION(, int, session_set_handle_max, SESSION_HANDLE, session, handle, handle_max); 00052 MOCKABLE_FUNCTION(, int, session_get_handle_max, SESSION_HANDLE, session, handle*, handle_max); 00053 MOCKABLE_FUNCTION(, void, session_destroy, SESSION_HANDLE, session); 00054 MOCKABLE_FUNCTION(, int, session_begin, SESSION_HANDLE, session); 00055 MOCKABLE_FUNCTION(, int, session_end, SESSION_HANDLE, session, const char*, condition_value, const char*, description); 00056 MOCKABLE_FUNCTION(, LINK_ENDPOINT_HANDLE, session_create_link_endpoint, SESSION_HANDLE, session, const char*, name); 00057 MOCKABLE_FUNCTION(, void, session_destroy_link_endpoint, LINK_ENDPOINT_HANDLE, link_endpoint); 00058 MOCKABLE_FUNCTION(, int, session_start_link_endpoint, LINK_ENDPOINT_HANDLE, link_endpoint, ON_ENDPOINT_FRAME_RECEIVED, frame_received_callback, ON_SESSION_STATE_CHANGED, on_session_state_changed, ON_SESSION_FLOW_ON, on_session_flow_on, void*, context); 00059 MOCKABLE_FUNCTION(, int, session_send_flow, LINK_ENDPOINT_HANDLE, link_endpoint, FLOW_HANDLE, flow); 00060 MOCKABLE_FUNCTION(, int, session_send_attach, LINK_ENDPOINT_HANDLE, link_endpoint, ATTACH_HANDLE, attach); 00061 MOCKABLE_FUNCTION(, int, session_send_disposition, LINK_ENDPOINT_HANDLE, link_endpoint, DISPOSITION_HANDLE, disposition); 00062 MOCKABLE_FUNCTION(, int, session_send_detach, LINK_ENDPOINT_HANDLE, link_endpoint, DETACH_HANDLE, detach); 00063 MOCKABLE_FUNCTION(, SESSION_SEND_TRANSFER_RESULT, session_send_transfer, LINK_ENDPOINT_HANDLE, link_endpoint, TRANSFER_HANDLE, transfer, PAYLOAD*, payloads, size_t, payload_count, delivery_number*, delivery_id, ON_SEND_COMPLETE, on_send_complete, void*, callback_context); 00064 00065 #ifdef __cplusplus 00066 } 00067 #endif /* __cplusplus */ 00068 00069 #endif /* SESSION_H */
Generated on Tue Jul 12 2022 12:43:22 by
