63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // (C) Copyright 2005 Matthias Troyer
 | |
| 
 | |
| // Use, modification and distribution is subject to 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)
 | |
| 
 | |
| //  Authors: Matthias Troyer
 | |
| 
 | |
| #ifndef BOOST_MPI_DETAIL_IGNORE_OPRIMITIVE_HPP
 | |
| #define BOOST_MPI_DETAIL_IGNORE_OPRIMITIVE_HPP
 | |
| 
 | |
| #include <boost/config.hpp>
 | |
| #include <boost/mpi/datatype.hpp>
 | |
| #include <boost/serialization/array.hpp>
 | |
| 
 | |
| namespace boost { namespace mpi { namespace detail {
 | |
| 
 | |
| /// @brief a minimal output archive, which ignores any save
 | |
| ///
 | |
| /// This class implements a minimal output archive, probably an output archive
 | |
| /// archetype, doing nothing at any save. It's use, besides acting as an
 | |
| /// archetype is as a base class to implement special archives that ignore
 | |
| /// saving of most types
 | |
| 
 | |
| class ignore_oprimitive
 | |
| {
 | |
| public:
 | |
|     /// a trivial default constructor
 | |
|     ignore_oprimitive()
 | |
|     {}
 | |
| 
 | |
|         /// don't do anything when saving binary data
 | |
|     void save_binary(const void *, std::size_t )
 | |
|     {
 | |
|     }
 | |
| 
 | |
|         /// don't do anything when saving arrays
 | |
|     template<class T>
 | |
|     void save_array(serialization::array_wrapper<T> const&, unsigned int )
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     typedef is_mpi_datatype<mpl::_1> use_array_optimization;
 | |
| 
 | |
| 
 | |
| #ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | |
|     friend class archive::save_access;
 | |
| protected:
 | |
| #else
 | |
| public:
 | |
| #endif
 | |
| 
 | |
|         /// don't do anything when saving primitive types
 | |
|     template<class T>
 | |
|     void save(const T &)
 | |
|     {
 | |
|     }
 | |
| };
 | |
| 
 | |
| } } } // end namespace boost::mpi::detail
 | |
| 
 | |
| #endif // BOOST_MPI_DETAIL_IGNORE_OPRIMITIVE_HPP
 | 
