1 // (C) Copyright 2005 Matthias Troyer 2 3 // Use, modification and distribution is subject to the Boost Software 4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 // http://www.boost.org/LICENSE_1_0.txt) 6 7 // Authors: Matthias Troyer 8 9 #ifndef BOOST_MPI_TEXT_SKELETON_OARCHIVE_HPP 10 #define BOOST_MPI_TEXT_SKELETON_OARCHIVE_HPP 11 12 #include <boost/archive/detail/auto_link_archive.hpp> 13 #include <boost/archive/text_oarchive.hpp> 14 #include <boost/mpi/detail/forward_skeleton_oarchive.hpp> 15 #include <boost/mpi/detail/ignore_oprimitive.hpp> 16 #include <boost/archive/detail/register_archive.hpp> 17 18 namespace boost { namespace mpi { 19 20 // an archive that writes a text skeleton into a stream 21 22 class text_skeleton_oarchive 23 : public detail::ignore_oprimitive, 24 public detail::forward_skeleton_oarchive<text_skeleton_oarchive,boost::archive::text_oarchive> 25 { 26 public: text_skeleton_oarchive(std::ostream & s,unsigned int flags=0)27 text_skeleton_oarchive(std::ostream & s, unsigned int flags = 0) 28 : detail::forward_skeleton_oarchive<text_skeleton_oarchive,boost::archive::text_oarchive>(skeleton_archive_) 29 , skeleton_archive_(s,flags) 30 {} 31 32 private: 33 boost::archive::text_oarchive skeleton_archive_; 34 }; 35 36 namespace detail { 37 38 typedef boost::mpi::detail::forward_skeleton_oarchive<boost::mpi::text_skeleton_oarchive,boost::archive::text_oarchive> type3; 39 40 } 41 42 43 } } // end namespace boost::mpi 44 45 // required by export 46 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::mpi::text_skeleton_oarchive) 47 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::mpi::detail::type3) 48 49 50 #endif // BOOST_MPI_TEXT_SKELETON_OARCHIVE_HPP 51