15 #ifndef __IPSDKSERIALIZATION_SERIALIZATIONENUMSRCMACRO_H__ 16 #define __IPSDKSERIALIZATION_SERIALIZATIONENUMSRCMACRO_H__ 18 #include <IPSDKSerialization/Archive/BaseIArchive.h> 19 #include <IPSDKSerialization/Archive/BaseOArchive.h> 31 #define IPSDK_IMPLEMENT_SERIAL_ENUM(enumName) \ 32 ipsdk::BaseIArchive& \ 33 ipsdk::operator>> (ipsdk::BaseIArchive& ar, const ipsdk::SerializationIItem<enumName>& item) \ 35 if (ar.isTextArchive() == true) { \ 36 std::string strValue; \ 37 ar >> ipsdk::make_iitem(item._itemName, strValue); \ 38 enumName::optional res = enumName::get_by_name(strValue.c_str()); \ 42 IPSDKSERIALIZATION_THROW([ipsdk::eIPSDKSerializationMessage::eInvalidSavedEnumString] % \ 46 enumName::value_type value; \ 47 ar >> ipsdk::make_iitem(item._itemName, value); \ 48 enumName::optional res = enumName::get_by_value(value); \ 52 IPSDKSERIALIZATION_THROW([ipsdk::eIPSDKSerializationMessage::eInvalidSavedEnumValue] % \ 57 ipsdk::BaseOArchive& \ 58 ipsdk::operator<< (ipsdk::BaseOArchive& ar, const ipsdk::SerializationOItem<enumName>& item) \ 60 if (ar.isTextArchive() == true) { \ 61 std::string strValue = item._value.str(); \ 62 ar << ipsdk::make_oitem(item._itemName, strValue); \ 65 ar << ipsdk::make_oitem(item._itemName, item._value.value()); \ 73 #endif // __IPSDKSERIALIZATION_SERIALIZATIONENUMSRCMACRO_H__ Serialization operators for basic types.
Macro set allowing to handle input object serialization.
Macro set allowing to handle input object serialization.
Macro set for template class manipulation.
Logger api for library IPSDKSerialization.