Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:40:57

0001 // (C) Copyright 2005 Matthias Troyer
0002 
0003 // Use, modification and distribution is subject to the Boost Software
0004 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0005 // http://www.boost.org/LICENSE_1_0.txt)
0006 
0007 //  Authors: Matthias Troyer
0008 
0009 #ifndef BOOST_MPI_DETAIL_IGNORE_IPRIMITIVE_HPP
0010 #define BOOST_MPI_DETAIL_IGNORE_IPRIMITIVE_HPP
0011 
0012 #include <boost/config.hpp>
0013 #include <boost/mpi/datatype.hpp>
0014 #include <boost/serialization/array.hpp>
0015 
0016 
0017 namespace boost { namespace mpi { namespace detail {
0018 
0019 /// @brief a minimal input archive, which ignores any load
0020 ///
0021 /// This class implements a minimal input archive, probably an input archive
0022 /// archetype, doing nothing at any load. It's use, besides acting as an
0023 /// archetype is as a base class to implement special archives that ignore
0024 /// loading of most types
0025 
0026 class ignore_iprimitive
0027 {
0028 public:
0029     /// a trivial default constructor
0030     ignore_iprimitive()
0031     {}
0032 
0033 
0034         /// don't do anything when loading binary data
0035     void load_binary(void *, std::size_t )
0036         {}
0037 
0038         /// don't do anything when loading arrays
0039     template<class T>
0040     void load_array(serialization::array_wrapper<T> &, unsigned int )
0041     {}
0042 
0043     typedef is_mpi_datatype<mpl::_1> use_array_optimization;
0044 
0045         /// don't do anything when loading primitive types
0046     template<class T>
0047     void load(T &)
0048     {
0049     }
0050 };
0051 
0052 } } } // end namespace boost::mpi::detail
0053 
0054 #endif // BOOST_MPI_DETAIL_IGNORE_IPRIMITIVE_HPP