A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Committer:
AzureIoTClient
Date:
Thu Oct 04 09:16:13 2018 -0700
Revision:
47:365a93fdb5bb
Parent:
28:add19eb7defa
1.2.10

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Azure.IoT Build 0:6ae2f7bca550 1 // Copyright (c) Microsoft. All rights reserved.
Azure.IoT Build 0:6ae2f7bca550 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
Azure.IoT Build 0:6ae2f7bca550 3
Azure.IoT Build 0:6ae2f7bca550 4 #ifndef SASL_MECHANISM_H
Azure.IoT Build 0:6ae2f7bca550 5 #define SASL_MECHANISM_H
Azure.IoT Build 0:6ae2f7bca550 6
Azure.IoT Build 0:6ae2f7bca550 7 #ifdef __cplusplus
Azure.IoT Build 0:6ae2f7bca550 8 extern "C" {
AzureIoTClient 6:641a9672db08 9 #include "cstdint"
AzureIoTClient 6:641a9672db08 10 #else
AzureIoTClient 6:641a9672db08 11 #include "stdint.h"
Azure.IoT Build 0:6ae2f7bca550 12 #endif /* __cplusplus */
Azure.IoT Build 0:6ae2f7bca550 13
AzureIoTClient 10:19ce00951771 14 #include "azure_c_shared_utility/umock_c_prod.h"
AzureIoTClient 10:19ce00951771 15
AzureIoTClient 28:add19eb7defa 16 typedef struct SASL_MECHANISM_INSTANCE_TAG* SASL_MECHANISM_HANDLE;
AzureIoTClient 28:add19eb7defa 17 typedef void* CONCRETE_SASL_MECHANISM_HANDLE;
Azure.IoT Build 0:6ae2f7bca550 18
AzureIoTClient 28:add19eb7defa 19 typedef struct SASL_MECHANISM_BYTES_TAG
AzureIoTClient 28:add19eb7defa 20 {
AzureIoTClient 28:add19eb7defa 21 const void* bytes;
AzureIoTClient 28:add19eb7defa 22 uint32_t length;
AzureIoTClient 28:add19eb7defa 23 } SASL_MECHANISM_BYTES;
Azure.IoT Build 0:6ae2f7bca550 24
AzureIoTClient 28:add19eb7defa 25 typedef CONCRETE_SASL_MECHANISM_HANDLE(*SASL_MECHANISM_CREATE)(void* config);
AzureIoTClient 28:add19eb7defa 26 typedef void(*SASL_MECHANISM_DESTROY)(CONCRETE_SASL_MECHANISM_HANDLE concrete_sasl_mechanism);
AzureIoTClient 28:add19eb7defa 27 typedef int(*SASL_MECHANISM_GET_INIT_BYTES)(CONCRETE_SASL_MECHANISM_HANDLE concrete_sasl_mechanism, SASL_MECHANISM_BYTES* init_bytes);
AzureIoTClient 28:add19eb7defa 28 typedef const char*(*SASL_MECHANISM_GET_MECHANISM_NAME)(CONCRETE_SASL_MECHANISM_HANDLE concrete_sasl_mechanism);
AzureIoTClient 28:add19eb7defa 29 typedef int(*SASL_MECHANISM_CHALLENGE)(CONCRETE_SASL_MECHANISM_HANDLE concrete_sasl_mechanism, const SASL_MECHANISM_BYTES* challenge_bytes, SASL_MECHANISM_BYTES* response_bytes);
Azure.IoT Build 0:6ae2f7bca550 30
AzureIoTClient 28:add19eb7defa 31 typedef struct SASL_MECHANISM_INTERFACE_TAG
AzureIoTClient 28:add19eb7defa 32 {
AzureIoTClient 28:add19eb7defa 33 SASL_MECHANISM_CREATE concrete_sasl_mechanism_create;
AzureIoTClient 28:add19eb7defa 34 SASL_MECHANISM_DESTROY concrete_sasl_mechanism_destroy;
AzureIoTClient 28:add19eb7defa 35 SASL_MECHANISM_GET_INIT_BYTES concrete_sasl_mechanism_get_init_bytes;
AzureIoTClient 28:add19eb7defa 36 SASL_MECHANISM_GET_MECHANISM_NAME concrete_sasl_mechanism_get_mechanism_name;
AzureIoTClient 28:add19eb7defa 37 SASL_MECHANISM_CHALLENGE concrete_sasl_mechanism_challenge;
AzureIoTClient 28:add19eb7defa 38 } SASL_MECHANISM_INTERFACE_DESCRIPTION;
Azure.IoT Build 0:6ae2f7bca550 39
AzureIoTClient 28:add19eb7defa 40 MOCKABLE_FUNCTION(, SASL_MECHANISM_HANDLE, saslmechanism_create, const SASL_MECHANISM_INTERFACE_DESCRIPTION*, sasl_mechanism_interface_description, void*, sasl_mechanism_create_parameters);
AzureIoTClient 28:add19eb7defa 41 MOCKABLE_FUNCTION(, void, saslmechanism_destroy, SASL_MECHANISM_HANDLE, sasl_mechanism);
AzureIoTClient 28:add19eb7defa 42 MOCKABLE_FUNCTION(, int, saslmechanism_get_init_bytes, SASL_MECHANISM_HANDLE, sasl_mechanism, SASL_MECHANISM_BYTES*, init_bytes);
AzureIoTClient 28:add19eb7defa 43 MOCKABLE_FUNCTION(, const char*, saslmechanism_get_mechanism_name, SASL_MECHANISM_HANDLE, sasl_mechanism);
AzureIoTClient 28:add19eb7defa 44 MOCKABLE_FUNCTION(, int, saslmechanism_challenge, SASL_MECHANISM_HANDLE, sasl_mechanism, const SASL_MECHANISM_BYTES*, challenge_bytes, SASL_MECHANISM_BYTES*, response_bytes);
Azure.IoT Build 0:6ae2f7bca550 45
Azure.IoT Build 0:6ae2f7bca550 46 #ifdef __cplusplus
Azure.IoT Build 0:6ae2f7bca550 47 }
Azure.IoT Build 0:6ae2f7bca550 48 #endif /* __cplusplus */
Azure.IoT Build 0:6ae2f7bca550 49
Azure.IoT Build 0:6ae2f7bca550 50 #endif /* SASL_MECHANISM_H */