17#ifndef vtkVariantBoostSerialization_h
18#define vtkVariantBoostSerialization_h
29#include <boost/archive/binary_oarchive.hpp>
31#include <boost/serialization/base_object.hpp>
32#include <boost/serialization/export.hpp>
33#include <boost/serialization/extended_type_info_no_rtti.hpp>
34#include <boost/serialization/split_free.hpp>
36VTK_ABI_NAMESPACE_BEGIN
41template <
typename Archiver>
44 ar& boost::serialization::base_object<std::string>(str);
49template <
typename Archiver>
50void save(Archiver& ar,
const std::string& str,
const unsigned int vtkNotUsed(version))
55template <
typename Archiver>
56void load(Archiver& ar, std::string& str,
const unsigned int vtkNotUsed(version))
67template <
typename Archiver>
68void save(Archiver& ar,
const vtkVariant& variant,
const unsigned int vtkNotUsed(version))
82#define VTK_VARIANT_SAVE(Value, Type, Function) \
85 Type value = variant.Function(); \
106 std::cerr <<
"cannot serialize variant with type " << variant.
GetType() <<
'\n';
108#undef VTK_VARIANT_SAVE
111template <
typename Archiver>
112void load(Archiver& ar,
vtkVariant& variant,
const unsigned int vtkNotUsed(version))
117#define VTK_VARIANT_LOAD(Value, Type) \
122 variant = vtkVariant(value); \
145 std::cerr <<
"cannot deserialize variant with type " <<
static_cast<unsigned int>(
Type)
149#undef VTK_VARIANT_LOAD
156VTK_ABI_NAMESPACE_BEGIN
162template <
typename Archiver>
169 if (array.
GetName() !=
nullptr)
182template <
typename Archiver>
virtual void SetNumberOfTuples(vtkIdType numTuples)
Set the number of tuples (a component group) in the array.
virtual char * GetName()
Set/get array's name.
vtkIdType GetNumberOfTuples() const
Get the number of complete tuples (a component group) in the array.
virtual void SetName(const char *)
Set/get array's name.
Wrapper around std::string to keep symbols short.
An array holding vtkVariants.
void SetValue(vtkIdType id, ValueType value)
Set the data at a particular index.
ValueType & GetValue(vtkIdType id) const
Get the data at a particular index.
A type representing the union of many types.
unsigned int GetType() const
Get the type of the variant.
bool IsValid() const
Get whether the variant value is valid.
vtkVariant()
Create an invalid variant.
#define VTK_UNSIGNED_CHAR
#define VTK_UNSIGNED_SHORT
#define VTK_UNSIGNED_LONG
#define VTK_UNSIGNED_LONG_LONG
void load(Archiver &ar, std::string &str, const unsigned int version)
#define VTK_VARIANT_SAVE(Value, Type, Function)
#define VTK_VARIANT_LOAD(Value, Type)
void serialize(Archiver &ar, vtkStdString &str, const unsigned int version)
void save(Archiver &ar, const std::string &str, const unsigned int version)