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 MESSAGE_SENDER_H
XinZhangMS 0:f7f1f0d76dd6 5 #define MESSAGE_SENDER_H
XinZhangMS 0:f7f1f0d76dd6 6
XinZhangMS 0:f7f1f0d76dd6 7 #include <stdbool.h>
XinZhangMS 0:f7f1f0d76dd6 8 #include "azure_uamqp_c/link.h"
XinZhangMS 0:f7f1f0d76dd6 9 #include "azure_uamqp_c/message.h"
XinZhangMS 0:f7f1f0d76dd6 10 #include "azure_c_shared_utility/xlogging.h"
XinZhangMS 0:f7f1f0d76dd6 11 #include "azure_uamqp_c/async_operation.h"
XinZhangMS 0:f7f1f0d76dd6 12 #include "azure_c_shared_utility/tickcounter.h"
XinZhangMS 0:f7f1f0d76dd6 13 #include "azure_c_shared_utility/umock_c_prod.h"
XinZhangMS 0:f7f1f0d76dd6 14 #include "azure_c_shared_utility/macro_utils.h"
XinZhangMS 0:f7f1f0d76dd6 15
XinZhangMS 0:f7f1f0d76dd6 16 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 17 extern "C" {
XinZhangMS 0:f7f1f0d76dd6 18 #endif /* __cplusplus */
XinZhangMS 0:f7f1f0d76dd6 19
XinZhangMS 0:f7f1f0d76dd6 20 #define MESSAGE_SEND_RESULT_VALUES \
XinZhangMS 0:f7f1f0d76dd6 21 MESSAGE_SEND_OK, \
XinZhangMS 0:f7f1f0d76dd6 22 MESSAGE_SEND_ERROR, \
XinZhangMS 0:f7f1f0d76dd6 23 MESSAGE_SEND_TIMEOUT, \
XinZhangMS 0:f7f1f0d76dd6 24 MESSAGE_SEND_CANCELLED
XinZhangMS 0:f7f1f0d76dd6 25
XinZhangMS 0:f7f1f0d76dd6 26 DEFINE_ENUM(MESSAGE_SEND_RESULT, MESSAGE_SEND_RESULT_VALUES)
XinZhangMS 0:f7f1f0d76dd6 27
XinZhangMS 0:f7f1f0d76dd6 28 #define MESSAGE_SENDER_STATE_VALUES \
XinZhangMS 0:f7f1f0d76dd6 29 MESSAGE_SENDER_STATE_IDLE, \
XinZhangMS 0:f7f1f0d76dd6 30 MESSAGE_SENDER_STATE_OPENING, \
XinZhangMS 0:f7f1f0d76dd6 31 MESSAGE_SENDER_STATE_OPEN, \
XinZhangMS 0:f7f1f0d76dd6 32 MESSAGE_SENDER_STATE_CLOSING, \
XinZhangMS 0:f7f1f0d76dd6 33 MESSAGE_SENDER_STATE_ERROR
XinZhangMS 0:f7f1f0d76dd6 34
XinZhangMS 0:f7f1f0d76dd6 35 DEFINE_ENUM(MESSAGE_SENDER_STATE, MESSAGE_SENDER_STATE_VALUES)
XinZhangMS 0:f7f1f0d76dd6 36
XinZhangMS 0:f7f1f0d76dd6 37 typedef struct MESSAGE_SENDER_INSTANCE_TAG* MESSAGE_SENDER_HANDLE;
XinZhangMS 0:f7f1f0d76dd6 38 typedef void(*ON_MESSAGE_SEND_COMPLETE)(void* context, MESSAGE_SEND_RESULT send_result, AMQP_VALUE delivery_state);
XinZhangMS 0:f7f1f0d76dd6 39 typedef void(*ON_MESSAGE_SENDER_STATE_CHANGED)(void* context, MESSAGE_SENDER_STATE new_state, MESSAGE_SENDER_STATE previous_state);
XinZhangMS 0:f7f1f0d76dd6 40
XinZhangMS 0:f7f1f0d76dd6 41 MOCKABLE_FUNCTION(, MESSAGE_SENDER_HANDLE, messagesender_create, LINK_HANDLE, link, ON_MESSAGE_SENDER_STATE_CHANGED, on_message_sender_state_changed, void*, context);
XinZhangMS 0:f7f1f0d76dd6 42 MOCKABLE_FUNCTION(, void, messagesender_destroy, MESSAGE_SENDER_HANDLE, message_sender);
XinZhangMS 0:f7f1f0d76dd6 43 MOCKABLE_FUNCTION(, int, messagesender_open, MESSAGE_SENDER_HANDLE, message_sender);
XinZhangMS 0:f7f1f0d76dd6 44 MOCKABLE_FUNCTION(, int, messagesender_close, MESSAGE_SENDER_HANDLE, message_sender);
XinZhangMS 0:f7f1f0d76dd6 45 MOCKABLE_FUNCTION(, ASYNC_OPERATION_HANDLE, messagesender_send_async, MESSAGE_SENDER_HANDLE, message_sender, MESSAGE_HANDLE, message, ON_MESSAGE_SEND_COMPLETE, on_message_send_complete, void*, callback_context, tickcounter_ms_t, timeout);
XinZhangMS 0:f7f1f0d76dd6 46 MOCKABLE_FUNCTION(, void, messagesender_set_trace, MESSAGE_SENDER_HANDLE, message_sender, bool, traceOn);
XinZhangMS 0:f7f1f0d76dd6 47
XinZhangMS 0:f7f1f0d76dd6 48 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 49 }
XinZhangMS 0:f7f1f0d76dd6 50 #endif /* __cplusplus */
XinZhangMS 0:f7f1f0d76dd6 51
XinZhangMS 0:f7f1f0d76dd6 52 #endif /* MESSAGE_SENDER_H */