00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef SST_CORE_SERIALIZATION_CORE_H
00013 #define SST_CORE_SERIALIZATION_CORE_H
00014
00015 #if defined(SST_CORE_SERIALIZATION_ELEMENT_H)
00016 #error "Include only one serialization/ header file"
00017 #endif
00018
00019 #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
00020 #pragma GCC diagnostic push
00021 #pragma GCC diagnostic ignored "-Wuninitialized"
00022 #pragma GCC diagnostic ignored "-Wsign-compare" // IGNORES Sign Compare WARNING IN boost include/boost/mpl/print.hpp line 61
00023 #endif
00024
00025 #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))
00026 #pragma GCC diagnostic ignored "-Wunused-local-typedefs"
00027 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
00028 #endif
00029
00030 #if defined(__clang__)
00031 #pragma clang diagnostic push
00032 #pragma clang diagnostic ignored "-Wdeprecated-declarations"
00033 #pragma clang diagnostic ignored "-Wc++11-extensions"
00034 #pragma clang diagnostic ignored "-Wdivision-by-zero" // IGNORES Divide By Zero WARNING IN boost include/boost/mpl/print.hpp line 50
00035 #endif
00036
00037 #if SST_WANT_POLYMORPHIC_ARCHIVE
00038 #include <boost/archive/polymorphic_iarchive.hpp>
00039 #include <boost/archive/polymorphic_oarchive.hpp>
00040 #else
00041 #include <boost/archive/binary_iarchive.hpp>
00042 #include <boost/archive/binary_oarchive.hpp>
00043 #endif
00044
00045 #include <boost/serialization/base_object.hpp>
00046 #include <boost/serialization/export.hpp>
00047 #include <boost/serialization/nvp.hpp>
00048 #include <boost/serialization/split_member.hpp>
00049
00050 #include <boost/serialization/type_info_implementation.hpp>
00051 #include <boost/serialization/extended_type_info_no_rtti.hpp>
00052
00053 #if defined(__clang__)
00054 #pragma clang diagnostic pop
00055 #endif
00056
00057 #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
00058 #pragma GCC diagnostic pop
00059 #endif
00060
00061 #include "sst/core/serialization/types.h"
00062
00063 #if SST_WANT_POLYMORPHIC_ARCHIVE
00064 #ifdef SST_CONFIG_HAVE_MPI
00065 #define SST_BOOST_SERIALIZATION_INSTANTIATE(func) \
00066 template void \
00067 func<boost::archive::polymorphic_iarchive>( \
00068 boost::archive::polymorphic_iarchive & ar, \
00069 const unsigned int file_version); \
00070 template void \
00071 func<boost::archive::polymorphic_oarchive>( \
00072 boost::archive::polymorphic_oarchive & ar, \
00073 const unsigned int file_version);
00074 #else
00075 #define SST_BOOST_SERIALIZATION_INSTANTIATE(func) \
00076 template void \
00077 func<boost::archive::polymorphic_iarchive>( \
00078 boost::archive::polymorphic_iarchive & ar, \
00079 const unsigned int file_version); \
00080 template void \
00081 func<boost::archive::polymorphic_oarchive>( \
00082 boost::archive::polymorphic_oarchive & ar, \
00083 const unsigned int file_version);
00084 #endif
00085 #else
00086 #define SST_BOOST_SERIALIZATION_INSTANTIATE(func) \
00087 template void \
00088 func<boost::archive::binary_iarchive>( \
00089 boost::archive::binary_iarchive & ar, \
00090 const unsigned int file_version); \
00091 template void \
00092 func<boost::archive::binary_oarchive>( \
00093 boost::archive::binary_oarchive & ar, \
00094 const unsigned int file_version);
00095 #endif
00096
00097 #endif // #ifndef SST_CORE_SERIALIZATION_CORE_H