Azure IoT common library
Dependents: STM32F746_iothub_client_sample_mqtt f767zi_mqtt iothub_client_sample_amqp iothub_client_sample_http ... more
Diff: azure_c_shared_utility/macro_utils.h
- Revision:
- 24:96ae4d5375ef
- Parent:
- 22:10640b226104
- Child:
- 42:0cc3c211ad26
--- a/azure_c_shared_utility/macro_utils.h Fri Mar 24 16:36:20 2017 -0700 +++ b/azure_c_shared_utility/macro_utils.h Thu Apr 06 14:12:06 2017 -0700 @@ -12577,7 +12577,7 @@ #define DEFINE_ENUM_STRINGS(enumName, ...) const char* C2(enumName, StringStorage)[COUNT_ARG(__VA_ARGS__)] = {FOR_EACH_1(DEFINE_ENUMERATION_CONSTANT_AS_STRING, __VA_ARGS__)}; \ const char* C2(enumName,Strings)(enumName value) \ { \ - if((int)value>=COUNT_ARG(__VA_ARGS__)) \ + if((int)value<0 || (int)value>=COUNT_ARG(__VA_ARGS__)) \ { \ /*this is an error case*/ \ return NULL; \ @@ -12610,6 +12610,21 @@ } \ } \ +#define DEFINE_LOCAL_ENUM(enumName, ...) typedef enum C2(enumName, _TAG) { FOR_EACH_1(DEFINE_ENUMERATION_CONSTANT, __VA_ARGS__)} enumName; \ +static const char* C2(enumName, StringStorage)[COUNT_ARG(__VA_ARGS__)] = {FOR_EACH_1(DEFINE_ENUMERATION_CONSTANT_AS_STRING, __VA_ARGS__)}; \ +static const char* C2(enumName,Strings)(enumName value) \ +{ \ + if((int)value<0 || (int)value>=COUNT_ARG(__VA_ARGS__)) \ + { \ + /*this is an error case*/ \ + return NULL; \ + } \ + else \ + { \ + return C2(enumName, StringStorage)[value]; \ + } \ +} + #define ENUM_TO_STRING(enumName, enumValue) C2(enumName, Strings)(enumValue) #define STRING_TO_ENUM(stringValue, enumName, addressOfEnumVariable) C2(enumName, _FromString)(stringValue, addressOfEnumVariable)