// (C) Copyright Jeremy Siek 2006 // Distributed under the Boost Software License, Version 1.0. (See // accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_PROPERTY_SERIALIZE_HPP #define BOOST_PROPERTY_SERIALIZE_HPP #include #ifdef BOOST_GRAPH_USE_MPI #include #include #endif // BOOST_GRAPH_USE_MPI #include #include namespace boost { template inline void serialize(Archive&, no_property&, const unsigned int) { } template void serialize(Archive& ar, property& prop, const unsigned int /*version*/) { ar & serialization::make_nvp( "property_base" , boost::serialization::base_object(prop) ); ar & serialization::make_nvp( "property_value" , prop.m_value ); } #ifdef BOOST_GRAPH_USE_MPI namespace mpi { template struct is_mpi_datatype > : mpl::and_, is_mpi_datatype > { }; } namespace serialization { template struct is_bitwise_serializable > : mpl::and_, is_bitwise_serializable > { }; template struct implementation_level > : mpl::int_ {} ; template struct tracking_level > : mpl::int_ {} ; } #endif // BOOST_GRAPH_USE_MPI } // end namespace boost #ifdef BOOST_GRAPH_USE_MPI namespace boost { namespace mpi { template<> struct is_mpi_datatype : mpl::true_ { }; } } // end namespace boost::mpi BOOST_IS_BITWISE_SERIALIZABLE(boost::no_property) BOOST_CLASS_IMPLEMENTATION(boost::no_property,object_serializable) BOOST_CLASS_TRACKING(boost::no_property,track_never) #endif // BOOST_GRAPH_USE_MPI #endif // BOOST_PROPERTY_SERIALIZE_HPP