33#ifndef vtkVariantBoostSerialization_h
34#define vtkVariantBoostSerialization_h
43#include <boost/archive/binary_oarchive.hpp>
45#include <boost/serialization/base_object.hpp>
46#include <boost/serialization/export.hpp>
47#include <boost/serialization/extended_type_info_no_rtti.hpp>
48#include <boost/serialization/split_free.hpp>
53template <
typename Archiver>
56 ar& boost::serialization::base_object<std::string>(str);
63template <
typename Archiver>
64void save(Archiver& ar,
const std::string& str,
const unsigned int vtkNotUsed(version))
69template <
typename Archiver>
71 "Use void save(Archiver& ar, const std::string& str, const unsigned int vtkNotUsed(version))")
74 std::string utf8(str.utf8_str());
78template <
typename Archiver>
79void load(Archiver& ar, std::string& str,
const unsigned int vtkNotUsed(version))
86template <
typename Archiver>
88 "Use void load(Archiver& ar, std::string& str, const unsigned int vtkNotUsed(version))")
102template <
typename Archiver>
103void save(Archiver& ar,
const vtkVariant& variant,
const unsigned int vtkNotUsed(version))
117#define VTK_VARIANT_SAVE(Value, Type, Function) \
120 Type value = variant.Function(); \
142 cerr <<
"cannot serialize variant with type " << variant.
GetType() <<
'\n';
144#undef VTK_VARIANT_SAVE
147template <
typename Archiver>
148void load(Archiver& ar,
vtkVariant& variant,
const unsigned int vtkNotUsed(version))
153#define VTK_VARIANT_LOAD(Value, Type) \
158 variant = vtkVariant(value); \
182 cerr <<
"cannot deserialize variant with type " <<
static_cast<unsigned int>(Type) <<
'\n';
185#undef VTK_VARIANT_LOAD
194template <
typename Archiver>
201 if (array.
GetName() !=
nullptr)
214template <
typename Archiver>
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.
String class that stores Unicode text.
static vtkUnicodeString from_utf8(const char *)
Constructs a string from a null-terminated sequence of UTF-8 encoded characters.
An array holding vtkVariants.
void SetNumberOfTuples(vtkIdType number) override
Set the number of tuples (a component group) in the array.
vtkVariant & GetValue(vtkIdType id) const
Get the data at a particular index.
void SetValue(vtkIdType id, vtkVariant value)
Set the data at a particular index.
A atomic 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.
#define VTK_DEPRECATED_IN_9_1_0(reason)
#define VTK_UNICODE_STRING
#define VTK_UNSIGNED_CHAR
#define VTK_UNSIGNED_SHORT
#define VTK_UNSIGNED_LONG
#define VTK_UNSIGNED_LONG_LONG
#define VTK_VARIANT_SAVE(Value, Type, Function)
void serialize(Archiver &ar, vtkStdString &str, const unsigned int vtkNotUsed(version))
#define VTK_VARIANT_LOAD(Value, Type)
void load(Archiver &ar, std::string &str, const unsigned int vtkNotUsed(version))
void save(Archiver &ar, const std::string &str, const unsigned int vtkNotUsed(version))