cisst-saw
Loading...
Searching...
No Matches
cmnDataFunctionsEnumMacros.h File Reference

Go to the source code of this file.

Macros

#define _cmnDataFunctionsEnumMacros_h
#define CMN_DATA_SPECIALIZATION_FOR_ENUM_USER_HUMAN_READABLE(_enum, _promotedType, _humanReadableFunction)
#define CMN_DATA_SPECIALIZATION_FOR_ENUM(_enum, _promotedType)
#define CMN_DECLARE_DATA_FUNCTIONS_JSON_FOR_ENUM(_enum)
#define CMN_DECLARE_DATA_FUNCTIONS_JSON_FOR_ENUM_EXPORT(_enum)
#define CMN_IMPLEMENT_DATA_FUNCTIONS_JSON_FOR_ENUM(_enum, _promotedType)
#define CMN_IMPLEMENT_DATA_FUNCTIONS_JSON_FOR_ENUM_AS_STRING(_enum, _to_string, _from_string)

Macro Definition Documentation

◆ _cmnDataFunctionsEnumMacros_h

#define _cmnDataFunctionsEnumMacros_h

◆ CMN_DATA_SPECIALIZATION_FOR_ENUM

#define CMN_DATA_SPECIALIZATION_FOR_ENUM ( _enum,
_promotedType )
Value:
static std::string HumanReadable(const DataType &data)
#define CMN_DATA_SPECIALIZATION_FOR_ENUM_USER_HUMAN_READABLE(_enum, _promotedType, _humanReadableFunction)
Definition cmnDataFunctionsEnumMacros.h:26

◆ CMN_DATA_SPECIALIZATION_FOR_ENUM_USER_HUMAN_READABLE

#define CMN_DATA_SPECIALIZATION_FOR_ENUM_USER_HUMAN_READABLE ( _enum,
_promotedType,
_humanReadableFunction )

◆ CMN_DECLARE_DATA_FUNCTIONS_JSON_FOR_ENUM

#define CMN_DECLARE_DATA_FUNCTIONS_JSON_FOR_ENUM ( _enum)
Value:
template <> void cmnDataJSON<_enum>::SerializeText(const _enum & data, Json::Value & jsonValue); \
template <> void cmnDataJSON<_enum>::DeSerializeText(_enum & data, const Json::Value & jsonValue) CISST_THROW(std::runtime_error);
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559

◆ CMN_DECLARE_DATA_FUNCTIONS_JSON_FOR_ENUM_EXPORT

#define CMN_DECLARE_DATA_FUNCTIONS_JSON_FOR_ENUM_EXPORT ( _enum)
Value:
template <> void CISST_EXPORT cmnDataJSON<_enum>::SerializeText(const _enum & data, Json::Value & jsonValue); \
template <> void CISST_EXPORT cmnDataJSON<_enum>::DeSerializeText(_enum & data, const Json::Value & jsonValue) CISST_THROW(std::runtime_error);
#define CISST_EXPORT
Definition cmnExportMacros.h:50

◆ CMN_IMPLEMENT_DATA_FUNCTIONS_JSON_FOR_ENUM

#define CMN_IMPLEMENT_DATA_FUNCTIONS_JSON_FOR_ENUM ( _enum,
_promotedType )
Value:
template <> void cmnDataJSON<_enum>::SerializeText(const _enum & data, Json::Value & jsonValue) { \
CMN_ASSERT(sizeof(_promotedType) >= sizeof(_enum)); \
const _promotedType dataPromoted = static_cast<_promotedType>(data); \
cmnDataJSON<_promotedType>::SerializeText(dataPromoted, jsonValue); \
} \
template <> void cmnDataJSON<_enum>::DeSerializeText(_enum & data, const Json::Value & jsonValue) CISST_THROW(std::runtime_error) { \
CMN_ASSERT(sizeof(_promotedType) >= sizeof(_enum)); \
_promotedType dataPromoted; \
cmnDataJSON<_promotedType>::DeSerializeText(dataPromoted, jsonValue); \
data = static_cast<_enum>(dataPromoted); \
}

◆ CMN_IMPLEMENT_DATA_FUNCTIONS_JSON_FOR_ENUM_AS_STRING

#define CMN_IMPLEMENT_DATA_FUNCTIONS_JSON_FOR_ENUM_AS_STRING ( _enum,
_to_string,
_from_string )
Value:
template <> void cmnDataJSON<_enum>::SerializeText(const _enum & data, Json::Value & jsonValue) { \
const std::string _s = _to_string(data); \
cmnDataJSON<std::string>::SerializeText(_s, jsonValue); \
} \
template <> void cmnDataJSON<_enum>::DeSerializeText(_enum & data, const Json::Value & jsonValue) CISST_THROW(std::runtime_error) { \
std::string _s; \
cmnDataJSON<std::string>::DeSerializeText(_s, jsonValue); \
data = _from_string(_s); \
}