Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r63537 - in trunk/boost/mpi: . detail
From: troyer_at_[hidden]
Date: 2010-07-02 23:20:15


Author: troyer
Date: 2010-07-02 23:20:14 EDT (Fri, 02 Jul 2010)
New Revision: 63537
URL: http://svn.boost.org/trac/boost/changeset/63537

Log:
Fixed Boost.MPI following breaking changes in Boost.Serialization
Text files modified:
   trunk/boost/mpi/datatype.hpp | 20 ++++++++++++++++++++
   trunk/boost/mpi/detail/ignore_iprimitive.hpp | 7 -------
   trunk/boost/mpi/detail/ignore_skeleton_oarchive.hpp | 3 +++
   3 files changed, 23 insertions(+), 7 deletions(-)

Modified: trunk/boost/mpi/datatype.hpp
==============================================================================
--- trunk/boost/mpi/datatype.hpp (original)
+++ trunk/boost/mpi/datatype.hpp 2010-07-02 23:20:14 EDT (Fri, 02 Jul 2010)
@@ -26,6 +26,8 @@
 #include <boost/mpl/and.hpp>
 #include <boost/mpi/detail/mpi_datatype_cache.hpp>
 #include <boost/mpl/assert.hpp>
+#include <boost/archive/basic_archive.hpp>
+#include <boost/serialization/item_version_type.hpp>
 #include <utility> // for std::pair
 
 namespace boost { namespace mpi {
@@ -298,6 +300,7 @@
 BOOST_MPI_DATATYPE(signed char, MPI_SIGNED_CHAR, builtin);
 #endif
 
+
 #endif // Doxygen
 
 namespace detail {
@@ -325,6 +328,23 @@
   : boost::mpl::bool_<true>
 {};
 
+
+#ifndef BOOST_MPI_DOXYGEN
+// direct support for special primitive data types of the serialization library
+BOOST_MPI_DATATYPE(boost::archive::library_version_type, get_mpi_datatype(uint_least16_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::version_type, get_mpi_datatype(uint_least8_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::class_id_type, get_mpi_datatype(int_least16_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::class_id_reference_type, get_mpi_datatype(int_least16_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::class_id_optional_type, get_mpi_datatype(int_least16_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::object_id_type, get_mpi_datatype(uint_least32_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::object_reference_type, get_mpi_datatype(uint_least32_t()), integer);
+BOOST_MPI_DATATYPE(boost::archive::tracking_type, get_mpi_datatype(bool()), builtin);
+BOOST_MPI_DATATYPE(boost::serialization::collection_size_type, get_mpi_datatype(std::size_t()), builtin);
+BOOST_MPI_DATATYPE(boost::serialization::item_version_type, get_mpi_datatype(uint_least8_t()), builtin);
+
+#endif // Doxygen
+
+
 } } // end namespace boost::mpi
 
 // define a macro to make explicit designation of this more transparent

Modified: trunk/boost/mpi/detail/ignore_iprimitive.hpp
==============================================================================
--- trunk/boost/mpi/detail/ignore_iprimitive.hpp (original)
+++ trunk/boost/mpi/detail/ignore_iprimitive.hpp 2010-07-02 23:20:14 EDT (Fri, 02 Jul 2010)
@@ -42,13 +42,6 @@
 
     typedef is_mpi_datatype<mpl::_1> use_array_optimization;
 
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- friend class archive::load_access;
-protected:
-#else
-public:
-#endif
-
         /// don't do anything when loading primitive types
     template<class T>
     void load(T & t)

Modified: trunk/boost/mpi/detail/ignore_skeleton_oarchive.hpp
==============================================================================
--- trunk/boost/mpi/detail/ignore_skeleton_oarchive.hpp (original)
+++ trunk/boost/mpi/detail/ignore_skeleton_oarchive.hpp 2010-07-02 23:20:14 EDT (Fri, 02 Jul 2010)
@@ -17,6 +17,7 @@
 #include <boost/archive/detail/oserializer.hpp>
 #include <boost/serialization/collection_size_type.hpp>
 #include <boost/serialization/array.hpp>
+#include <boost/serialization/item_version_type.hpp>
 
 namespace boost { namespace mpi { namespace detail {
 
@@ -53,6 +54,7 @@
 
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::class_id_optional_type)
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::version_type)
+BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::library_version_type)
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::class_id_type)
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::class_id_reference_type)
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::object_id_type)
@@ -60,6 +62,7 @@
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::tracking_type)
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(archive::class_name_type)
 BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(serialization::collection_size_type)
+BOOST_ARCHIVE_IGNORE_IMPLEMENTATION(serialization::item_version_type)
 
     void save_override(std::string const & s, int)
     {


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk