1 #ifndef INDIGOX_UTILS_SERIALISE_HPP 2 #define INDIGOX_UTILS_SERIALISE_HPP 4 #define CEREAL_SERIALIZE_FUNCTION_NAME serialise 7 #include <cereal/access.hpp> 8 #include <cereal/archives/json.hpp> 9 #include <cereal/archives/portable_binary.hpp> 10 #include <cereal/cereal.hpp> 11 #include <cereal/types/array.hpp> 12 #include <cereal/types/bitset.hpp> 13 #include <cereal/types/boost_dynamic_bitset.hpp> 14 #include <cereal/types/eastl_bitset.hpp> 15 #include <cereal/types/eigen.hpp> 16 #include <cereal/types/map.hpp> 17 #include <cereal/types/memory.hpp> 18 #include <cereal/types/utility.hpp> 19 #include <cereal/types/vector.hpp> 21 #include <type_traits> 32 #define __hr_out cereal::JSONOutputArchive 33 #define __hr_in cereal::JSONInputArchive 34 #define __cr_out cereal::PortableBinaryOutputArchive 35 #define __cr_in cereal::PortableBinaryInputArchive 37 #define __ix_serialise(class_name, in_archive_t, out_archive_t) \ 38 template void class_name::serialise<out_archive_t>(out_archive_t &, \ 40 template void class_name::serialise<in_archive_t>(in_archive_t &, \ 43 #define __ix_serialise_split(class_name, in_archive_t, out_archive_t) \ 44 template void class_name::save<out_archive_t>(out_archive_t &, \ 45 const uint32_t) const; \ 46 template void class_name::load<in_archive_t>(in_archive_t &, const uint32_t); 48 #define __ix_serialise_construct(class_name, in_archive_t, out_archive_t) \ 49 template void class_name::save<out_archive_t>(out_archive_t &, \ 50 const uint32_t) const; \ 51 template void class_name::load_and_construct<in_archive_t>( \ 52 in_archive_t &, cereal::construct<class_name> &, const uint32_t); 54 #define INDIGOX_SERIALISE(class_name) \ 55 __ix_serialise(class_name, __hr_in, __hr_out) \ 56 __ix_serialise(class_name, __cr_in, __cr_out) 58 #define INDIGOX_SERIALISE_SPLIT(class_name) \ 59 __ix_serialise_split(class_name, __hr_in, __hr_out) \ 60 __ix_serialise_split(class_name, __cr_in, __cr_out) 62 #define INDIGOX_SERIALISE_CONSTRUCT(class_name) \ 63 __ix_serialise_construct(class_name, __hr_in, __hr_out) \ 64 __ix_serialise_construct(class_name, __cr_in, __cr_out) 66 #define INDIGOX_SERIAL_NVP(name, value) cereal::make_nvp<Archive>(name, value) 68 #define INDIGOX_SERIALISE_VERSION(class_name, version) \ 69 CEREAL_CLASS_VERSION(class_name, version); 71 #define INDIGOX_IS_OUTPUT_ARCHIVE(archive_t) \ 72 std::is_base_of<cereal::detail::OutputArchiveBase, archive_t>::value 74 #define INDIGOX_IS_INPUT_ARCHIVE(archive_t) \ 75 std::is_base_of<cereal::detail::InputArchiveBase, archive_t>::value 77 #define INDIGOX_IS_HUMAN_READABLE(archive_t) \ 78 cereal::traits::is_text_archive<archive_t>::value
typeless & operator=(const typeless &)=delete
Definition: serialise.hpp:24