2
0
mirror of https://github.com/boostorg/mpi.git synced 2026-02-24 16:12:16 +00:00

Hide vector implementation.

refs #62 and #67
This commit is contained in:
Alain Miniussi
2018-08-01 14:18:57 +02:00
parent bc987ba62e
commit 389602fbe7

View File

@@ -294,14 +294,6 @@ class BOOST_MPI_DECL communicator
template<typename T, typename A>
void send(int dest, int tag, const std::vector<T,A>& value) const;
template<typename T, typename A>
void send_vector(int dest, int tag, const std::vector<T,A>& value,
mpl::true_) const;
template<typename T, typename A>
void send_vector(int dest, int tag, const std::vector<T,A>& value,
mpl::false_) const;
/**
* @brief Send the skeleton of an object.
*
@@ -417,14 +409,6 @@ class BOOST_MPI_DECL communicator
template<typename T, typename A>
status recv(int source, int tag, std::vector<T,A>& value) const;
template<typename T, typename A>
status recv_vector(int source, int tag, std::vector<T,A>& value,
mpl::true_) const;
template<typename T, typename A>
status recv_vector(int source, int tag, std::vector<T,A>& value,
mpl::false_) const;
/**
* @brief Receive a skeleton from a remote process.
*
@@ -622,14 +606,6 @@ class BOOST_MPI_DECL communicator
template<typename T, class A>
request isend(int dest, int tag, const std::vector<T,A>& values) const;
template<typename T, class A>
request isend_vector(int dest, int tag, const std::vector<T,A>& values,
mpl::true_) const;
template<typename T, class A>
request isend_vector(int dest, int tag, const std::vector<T,A>& values,
mpl::false_) const;
/**
* @brief Send a message to another process without any data
* without blocking.
@@ -717,14 +693,6 @@ class BOOST_MPI_DECL communicator
template<typename T, typename A>
request irecv(int source, int tag, std::vector<T,A>& values) const;
template<typename T, typename A>
request irecv_vector(int source, int tag, std::vector<T,A>& values,
mpl::true_) const;
template<typename T, typename A>
request irecv_vector(int source, int tag, std::vector<T,A>& values,
mpl::false_) const;
/**
* @brief Initiate receipt of a message from a remote process that
* carries no data.
@@ -1132,6 +1100,39 @@ class BOOST_MPI_DECL communicator
request
array_irecv_impl(int source, int tag, T* values, int n, mpl::false_) const;
// We're sending/receivig a vector with associated MPI datatype.
// We need to send/recv the size and then the data and make sure
// blocking and non blocking method agrees on the format.
template<typename T, typename A>
request irecv_vector(int source, int tag, std::vector<T,A>& values,
mpl::true_) const;
template<typename T, class A>
request isend_vector(int dest, int tag, const std::vector<T,A>& values,
mpl::true_) const;
template<typename T, typename A>
void send_vector(int dest, int tag, const std::vector<T,A>& value,
mpl::true_) const;
template<typename T, typename A>
status recv_vector(int source, int tag, std::vector<T,A>& value,
mpl::true_) const;
// We're sending/receivig a vector with no associated MPI datatype.
// We need to send/recv it as an archive and make sure
// blocking and non blocking method agrees on the format.
template<typename T, typename A>
request irecv_vector(int source, int tag, std::vector<T,A>& values,
mpl::false_) const;
template<typename T, class A>
request isend_vector(int dest, int tag, const std::vector<T,A>& values,
mpl::false_) const;
template<typename T, typename A>
void send_vector(int dest, int tag, const std::vector<T,A>& value,
mpl::false_) const;
template<typename T, typename A>
status recv_vector(int source, int tag, std::vector<T,A>& value,
mpl::false_) const;
protected:
shared_ptr<MPI_Comm> comm_ptr;
};