/ src / common / archives.h
archives.h
 1  // Copyright 2020 Citra Emulator Project
 2  // Licensed under GPLv2 or any later version
 3  // Refer to the license.txt file included.
 4  
 5  #pragma once
 6  
 7  #include <boost/archive/binary_iarchive.hpp>
 8  #include <boost/archive/binary_oarchive.hpp>
 9  #include <boost/serialization/export.hpp>
10  
11  using iarchive = boost::archive::binary_iarchive;
12  using oarchive = boost::archive::binary_oarchive;
13  
14  #define SERIALIZE_IMPL(A)                                                                          \
15      template void A::serialize<iarchive>(iarchive & ar, const unsigned int file_version);          \
16      template void A::serialize<oarchive>(oarchive & ar, const unsigned int file_version);
17  
18  #define SERIALIZE_EXPORT_IMPL(A)                                                                   \
19      BOOST_CLASS_EXPORT_IMPLEMENT(A)                                                                \
20      BOOST_SERIALIZATION_REGISTER_ARCHIVE(iarchive)                                                 \
21      BOOST_SERIALIZATION_REGISTER_ARCHIVE(oarchive)