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