Merge topic 'serialization-fixes'

ec4a434dc Include all int types in SerializableTypeString
d9fe6a546 Fix ArrayHandleCast serializable type name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sujin Philip <sujin.philip@kitware.com>
Merge-request: !2311
This commit is contained in:
Kenneth Moreland 2020-11-11 20:12:57 +00:00 committed by Kitware Robot
commit 60f19f3f9e
2 changed files with 25 additions and 79 deletions

@ -284,9 +284,8 @@ struct SerializableTypeString<vtkm::cont::ArrayHandleCast<T, AH>>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "AH_Cast<" + SerializableTypeString<T>::Get() + "," +
SerializableTypeString<typename AH::ValueType>::Get() + "," +
SerializableTypeString<typename AH::StorageTag>::Get() + ">";
static std::string name =
"AH_Cast<" + SerializableTypeString<T>::Get() + "," + SerializableTypeString<AH>::Get() + ">";
return name;
}
};

@ -49,88 +49,35 @@ std::string GetVariadicSerializableTypeString(const T&)
return SerializableTypeString<T>::Get();
}
template <typename T>
std::string IntTypeString()
{
return (std::is_signed<T>::value ? "I" : "U") + std::to_string(sizeof(T) * 8);
}
} // internal
/// @cond SERIALIZATION
template <>
struct SerializableTypeString<vtkm::Int8>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "I8";
return name;
#define VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(int_type) \
template <> \
struct SerializableTypeString<int_type> \
{ \
static VTKM_CONT std::string Get() { return internal::IntTypeString<int_type>(); } \
}
};
template <>
struct SerializableTypeString<vtkm::UInt8>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "U8";
return name;
}
};
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(char);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(signed char);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(unsigned char);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(signed short);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(unsigned short);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(signed int);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(unsigned int);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(signed long);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(unsigned long);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(signed long long);
VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL(unsigned long long);
template <>
struct SerializableTypeString<vtkm::Int16>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "I16";
return name;
}
};
template <>
struct SerializableTypeString<vtkm::UInt16>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "U16";
return name;
}
};
template <>
struct SerializableTypeString<vtkm::Int32>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "I32";
return name;
}
};
template <>
struct SerializableTypeString<vtkm::UInt32>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "U32";
return name;
}
};
template <>
struct SerializableTypeString<vtkm::Int64>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "I64";
return name;
}
};
template <>
struct SerializableTypeString<vtkm::UInt64>
{
static VTKM_CONT const std::string& Get()
{
static std::string name = "U64";
return name;
}
};
#undef VTK_M_SERIALIZABLE_INT_TYPE_STRING_IMPL
template <>
struct SerializableTypeString<vtkm::Float32>