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 /** @file schemalib.h
XinZhangMS 0:f7f1f0d76dd6 5 * @brief The IoT Hub Serializer APIs allows developers to define models for
XinZhangMS 0:f7f1f0d76dd6 6 * their devices
XinZhangMS 0:f7f1f0d76dd6 7 */
XinZhangMS 0:f7f1f0d76dd6 8
XinZhangMS 0:f7f1f0d76dd6 9 #ifndef SCHEMALIB_H
XinZhangMS 0:f7f1f0d76dd6 10 #define SCHEMALIB_H
XinZhangMS 0:f7f1f0d76dd6 11
XinZhangMS 0:f7f1f0d76dd6 12 #include "azure_c_shared_utility/macro_utils.h"
XinZhangMS 0:f7f1f0d76dd6 13 #include "azure_c_shared_utility/strings.h"
XinZhangMS 0:f7f1f0d76dd6 14 #include "iotdevice.h"
XinZhangMS 0:f7f1f0d76dd6 15
XinZhangMS 0:f7f1f0d76dd6 16 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 17 extern "C" {
XinZhangMS 0:f7f1f0d76dd6 18 #endif
XinZhangMS 0:f7f1f0d76dd6 19
XinZhangMS 0:f7f1f0d76dd6 20 /* Codes_SRS_SCHEMALIB__99_001:[ IoTHubSchema_Client shall expose the following API: ... ] */
XinZhangMS 0:f7f1f0d76dd6 21 #define SERIALIZER_RESULT_VALUES \
XinZhangMS 0:f7f1f0d76dd6 22 SERIALIZER_OK, \
XinZhangMS 0:f7f1f0d76dd6 23 SERIALIZER_INVALID_ARG, \
XinZhangMS 0:f7f1f0d76dd6 24 SERIALIZER_CODEFIRST_INIT_FAILED, \
XinZhangMS 0:f7f1f0d76dd6 25 SERIALIZER_SCHEMA_FAILED, \
XinZhangMS 0:f7f1f0d76dd6 26 SERIALIZER_HTTP_API_INIT_FAILED, \
XinZhangMS 0:f7f1f0d76dd6 27 SERIALIZER_ALREADY_INIT, \
XinZhangMS 0:f7f1f0d76dd6 28 SERIALIZER_ERROR, \
XinZhangMS 0:f7f1f0d76dd6 29 SERIALIZER_NOT_INITIALIZED, \
XinZhangMS 0:f7f1f0d76dd6 30 SERIALIZER_ALREADY_STARTED, \
XinZhangMS 0:f7f1f0d76dd6 31 SERIALIZER_DEVICE_CREATE_FAILED, \
XinZhangMS 0:f7f1f0d76dd6 32 SERIALIZER_GET_MODEL_HANDLE_FAILED, \
XinZhangMS 0:f7f1f0d76dd6 33 SERIALIZER_SERVICEBUS_FAILED
XinZhangMS 0:f7f1f0d76dd6 34
XinZhangMS 0:f7f1f0d76dd6 35 /** @brief Enumeration specifying the status of calls to various APIs in this
XinZhangMS 0:f7f1f0d76dd6 36 * module.
XinZhangMS 0:f7f1f0d76dd6 37 */
XinZhangMS 0:f7f1f0d76dd6 38 DEFINE_ENUM(SERIALIZER_RESULT, SERIALIZER_RESULT_VALUES);
XinZhangMS 0:f7f1f0d76dd6 39
XinZhangMS 0:f7f1f0d76dd6 40 #define SERIALIZER_CONFIG_VALUES \
XinZhangMS 0:f7f1f0d76dd6 41 CommandPollingInterval, \
XinZhangMS 0:f7f1f0d76dd6 42 SerializeDelayedBufferMaxSize
XinZhangMS 0:f7f1f0d76dd6 43
XinZhangMS 0:f7f1f0d76dd6 44 /** @brief Enumeration specifying the option to set on the serializer when
XinZhangMS 0:f7f1f0d76dd6 45 * calling ::serializer_setconfig.
XinZhangMS 0:f7f1f0d76dd6 46 */
XinZhangMS 0:f7f1f0d76dd6 47 DEFINE_ENUM(SERIALIZER_CONFIG, SERIALIZER_CONFIG_VALUES);
XinZhangMS 0:f7f1f0d76dd6 48
XinZhangMS 0:f7f1f0d76dd6 49 /**
XinZhangMS 0:f7f1f0d76dd6 50 * @brief Initializes the library.
XinZhangMS 0:f7f1f0d76dd6 51 *
XinZhangMS 0:f7f1f0d76dd6 52 * @param overrideSchemaNamespace An override schema namespace to use for all
XinZhangMS 0:f7f1f0d76dd6 53 * models. Optional, can be @c NULL.
XinZhangMS 0:f7f1f0d76dd6 54 *
XinZhangMS 0:f7f1f0d76dd6 55 * If @p schemaNamespace is not @c NULL, its value shall be used
XinZhangMS 0:f7f1f0d76dd6 56 * instead of the namespace defined for each model by using the
XinZhangMS 0:f7f1f0d76dd6 57 * @c DECLARE_XXX macro.
XinZhangMS 0:f7f1f0d76dd6 58 *
XinZhangMS 0:f7f1f0d76dd6 59 * @return @c SERIALIZER_OK on success and any other error on failure.
XinZhangMS 0:f7f1f0d76dd6 60 */
XinZhangMS 0:f7f1f0d76dd6 61 extern SERIALIZER_RESULT serializer_init(const char* overrideSchemaNamespace);
XinZhangMS 0:f7f1f0d76dd6 62
XinZhangMS 0:f7f1f0d76dd6 63 /** @brief Shuts down the IOT library.
XinZhangMS 0:f7f1f0d76dd6 64 *
XinZhangMS 0:f7f1f0d76dd6 65 * The library will track all created devices and upon a call to
XinZhangMS 0:f7f1f0d76dd6 66 * ::serializer_deinit it will de-initialize all devices.
XinZhangMS 0:f7f1f0d76dd6 67 */
XinZhangMS 0:f7f1f0d76dd6 68 extern void serializer_deinit(void);
XinZhangMS 0:f7f1f0d76dd6 69
XinZhangMS 0:f7f1f0d76dd6 70 /**
XinZhangMS 0:f7f1f0d76dd6 71 * @brief Set serializer options.
XinZhangMS 0:f7f1f0d76dd6 72 *
XinZhangMS 0:f7f1f0d76dd6 73 * @param which The option to be set.
XinZhangMS 0:f7f1f0d76dd6 74 * @param value The value to set for the given option.
XinZhangMS 0:f7f1f0d76dd6 75 *
XinZhangMS 0:f7f1f0d76dd6 76 * @return @c SERIALIZER_OK on success and any other error on failure.
XinZhangMS 0:f7f1f0d76dd6 77 */
XinZhangMS 0:f7f1f0d76dd6 78 extern SERIALIZER_RESULT serializer_setconfig(SERIALIZER_CONFIG which, void* value);
XinZhangMS 0:f7f1f0d76dd6 79
XinZhangMS 0:f7f1f0d76dd6 80 #ifdef __cplusplus
XinZhangMS 0:f7f1f0d76dd6 81 }
XinZhangMS 0:f7f1f0d76dd6 82 #endif
XinZhangMS 0:f7f1f0d76dd6 83
XinZhangMS 0:f7f1f0d76dd6 84 #endif /* SCHEMALIB_H */