// Copyright 2005 Douglas Gregor. | |
// 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) | |
// Message Passing Interface 1.1 -- Section 3. MPI Point-to-point | |
#ifndef BOOST_MPI_DETAIL_POINT_TO_POINT_HPP | |
#define BOOST_MPI_DETAIL_POINT_TO_POINT_HPP | |
// For (de-)serializing sends and receives | |
#include <boost/mpi/config.hpp> | |
#include <boost/mpi/packed_oarchive.hpp> | |
#include <boost/mpi/packed_iarchive.hpp> | |
namespace boost { namespace mpi { namespace detail { | |
/** Sends a packed archive using MPI_Send. */ | |
BOOST_MPI_DECL void | |
packed_archive_send(MPI_Comm comm, int dest, int tag, | |
const packed_oarchive& ar); | |
/** Sends a packed archive using MPI_Isend. | |
* | |
* This routine may split sends into multiple packets. The MPI_Request | |
* for each packet will be placed into the out_requests array, up to | |
* num_out_requests packets. The number of packets sent will be | |
* returned from the function. | |
* | |
* @pre num_out_requests >= 2 | |
*/ | |
BOOST_MPI_DECL int | |
packed_archive_isend(MPI_Comm comm, int dest, int tag, | |
const packed_oarchive& ar, | |
MPI_Request* out_requests, int num_out_requests); | |
/** | |
* \overload | |
*/ | |
BOOST_MPI_DECL int | |
packed_archive_isend(MPI_Comm comm, int dest, int tag, | |
const packed_iarchive& ar, | |
MPI_Request* out_requests, int num_out_requests); | |
/** Receives a packed archive using MPI_Recv. */ | |
BOOST_MPI_DECL void | |
packed_archive_recv(MPI_Comm comm, int source, int tag, packed_iarchive& ar, | |
MPI_Status& status); | |
} } } // end namespace boost::mpi::detail | |
#endif // BOOST_MPI_DETAIL_POINT_TO_POINT_HPP |