KaMPIng 0.1.1
Flexible and (near) zero-overhead C++ bindings for MPI
Loading...
Searching...
No Matches
kamping::MPIResult< Args > Class Template Reference

MPIResult contains the result of a MPI call wrapped by KaMPIng. More...

#include <result.hpp>

Public Member Functions

 MPIResult (std::tuple< Args... > &&data)
 Constructor for MPIResult.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::status, T >(), bool > = true>
autoget_status ()
 Get the kamping::Status from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::status, T >(), bool > = true>
auto constget_status () const
 Get the kamping::Status from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::status, T >(), bool > = true>
auto extract_status ()
 Extracts the kamping::Status from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
autoget_recv_buf ()
 Get the recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
autoget_recv_buffer ()
 Get the recv_buffer from the MPIResult object. Alias for get_recv_buf().
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto constget_recv_buf () const
 Get the recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto constget_recv_buffer () const
 Get the recv_buffer from the MPIResult object. Alias for get_recv_buf().
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_buf, T >(), bool > = true>
auto constget_send_buf () const
 Get the send_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_buf, T >(), bool > = true>
auto constget_send_buffer () const
 Get the send_buffer from the MPIResult object. Alias for get_send_buf().
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_buf, T >(), bool > = true>
auto extract_send_buf ()
 Extracts the send_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto extract_recv_buf ()
 Extracts the recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto extract_recv_buffer ()
 Extracts the recv_buffer from the MPIResult object. Alias for extract_recv_buf().
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
autoget_recv_buf ()
 Get the send_recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
autoget_recv_buffer ()
 Get the send_recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto constget_recv_buf () const
 Get the send_recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto constget_recv_buffer () const
 Get the send_recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto extract_recv_buf ()
 Extracts the send_recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto extract_recv_buffer ()
 Extracts the send_recv_buffer from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_counts, T >(), bool > = true>
autoget_recv_counts ()
 Get the recv_counts from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_counts, T >(), bool > = true>
auto constget_recv_counts () const
 Get the recv_counts from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_counts, T >(), bool > = true>
auto extract_recv_counts ()
 Extracts the recv_counts from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_count, T >(), bool > = true>
autoget_recv_count ()
 Gets the recv_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_count, T >(), bool > = true>
auto constget_recv_count () const
 Gets the recv_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_count, T >(), bool > = true>
auto extract_recv_count ()
 Extracts the recv_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_displs, T >(), bool > = true>
autoget_recv_displs ()
 Gets the recv_displs from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_displs, T >(), bool > = true>
auto constget_recv_displs () const
 Gets the recv_displs from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_displs, T >(), bool > = true>
auto extract_recv_displs ()
 Extracts the recv_displs from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_counts, T >(), bool > = true>
autoget_send_counts ()
 Gets the send_counts from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_counts, T >(), bool > = true>
auto constget_send_counts () const
 Gets the send_counts from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_counts, T >(), bool > = true>
auto extract_send_counts ()
 Extracts the send_counts from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_count, T >(), bool > = true>
autoget_send_count ()
 Gets the send_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_count, T >(), bool > = true>
auto constget_send_count () const
 Gets the send_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_count, T >(), bool > = true>
auto extract_send_count ()
 Extracts the send_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_displs, T >(), bool > = true>
autoget_send_displs ()
 Gets the send_displs from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_displs, T >(), bool > = true>
auto constget_send_displs () const
 Gets the send_displs from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_displs, T >(), bool > = true>
auto extract_send_displs ()
 Extracts the send_displs from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_count, T >(), bool > = true>
autoget_send_recv_count ()
 Gets the send_recv_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_count, T >(), bool > = true>
auto constget_send_recv_count () const
 Gets the send_recv_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_count, T >(), bool > = true>
auto extract_send_recv_count ()
 Extracts the send_recv_count from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_type, T >(), bool > = true>
autoget_send_type ()
 Gets the send_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_type, T >(), bool > = true>
auto constget_send_type () const
 Gets the send_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_type, T >(), bool > = true>
auto extract_send_type ()
 Extracts the send_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_type, T >(), bool > = true>
autoget_recv_type ()
 Gets the recv_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_type, T >(), bool > = true>
auto constget_recv_type () const
 Gets the recv_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_type, T >(), bool > = true>
auto extract_recv_type ()
 Extracts the recv_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_type, T >(), bool > = true>
autoget_send_recv_type ()
 Gets the send_recv_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_type, T >(), bool > = true>
auto constget_send_recv_type () const
 Gets the send_recv_type from the MPIResult object.
 
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_type, T >(), bool > = true>
auto extract_send_recv_type ()
 Extracts the send_recv_type from the MPIResult object.
 
template<internal::ParameterType ptype, typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< ptype, T >(), bool > = true>
autoget ()
 Gets the parameter with given parameter type from the MPIResult object.
 
template<internal::ParameterType ptype, typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< ptype, T >(), bool > = true>
auto constget () const
 Gets the parameter with given parameter type from the MPIResult object.
 
template<std::size_t i>
autoget ()
 Get the underlying data from the i-th buffer in the result object. This method is part of the structured binding enabling machinery.
 
template<std::size_t i>
auto constget () const
 Get the underlying data from the i-th buffer in the result object. This method is part of the structured binding enabling machinery.
 

Static Public Attributes

static constexpr bool is_empty = (sizeof...(Args) == 0)
 true, if the result does not encapsulate any data.
 
static constexpr bool has_recv_buffer = internal::has_parameter_type<internal::ParameterType::recv_buf, Args...>()
 true, if the result encapsulates a recv_buf.
 
static constexpr bool has_send_recv_buffer
 true, if the result encapsulates a send_recv_buf.
 

Detailed Description

template<typename... Args>
class kamping::MPIResult< Args >

MPIResult contains the result of a MPI call wrapped by KaMPIng.

A wrapped MPI call can have multiple different results such as the recv_buffer, recv_counts, recv_displs etc. If the buffers where these results have been written to by the library call has been allocated by/transferred to KaMPIng, the content of the buffers can be extracted using extract_<result>. Note that not all below-listed buffer categories needs to be used by every wrapped MPI call. If a specific call does not use a buffer category, you have to provide ResultCategoryNotUsed instead.

Template Parameters
ArgsTypes of return data buffers.

Constructor & Destructor Documentation

◆ MPIResult()

template<typename... Args>
kamping::MPIResult< Args >::MPIResult ( std::tuple< Args... > && data)
inline

Constructor for MPIResult.

Parameters
datastd::tuple containing all data buffers to be returned.

Member Function Documentation

◆ extract_recv_buf() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_buf ( )
inline

Extracts the recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the received elements.

◆ extract_recv_buf() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_buf ( )
inline

Extracts the send_recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the received elements.

◆ extract_recv_buffer() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_buffer ( )
inline

Extracts the recv_buffer from the MPIResult object. Alias for extract_recv_buf().

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the received elements.

◆ extract_recv_buffer() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_buffer ( )
inline

Extracts the send_recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the received elements.

◆ extract_recv_count()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_count, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_count ( )
inline

Extracts the recv_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the recv count.

◆ extract_recv_counts()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_counts, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_counts ( )
inline

Extracts the recv_counts from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the receive counts.

◆ extract_recv_displs()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_displs, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_displs ( )
inline

Extracts the recv_displs from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the receive displacements.

◆ extract_recv_type()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_type, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_recv_type ( )
inline

Extracts the recv_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send_type.

◆ extract_send_buf()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_buf, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_buf ( )
inline

Extracts the send_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the elements to send.

◆ extract_send_count()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_count, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_count ( )
inline

Extracts the send_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send counts.

◆ extract_send_counts()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_counts, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_counts ( )
inline

Extracts the send_counts from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send counts.

◆ extract_send_displs()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_displs, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_displs ( )
inline

Extracts the send_displs from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send displacements.

◆ extract_send_recv_count()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_count, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_recv_count ( )
inline

Extracts the send_recv_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send_recv_count.

◆ extract_send_recv_type()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_type, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_recv_type ( )
inline

Extracts the send_recv_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send_recv_type.

◆ extract_send_type()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_type, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_send_type ( )
inline

Extracts the send_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send_type.

◆ extract_status()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::status, T >(), bool > = true>
auto kamping::MPIResult< Args >::extract_status ( )
inline

Extracts the kamping::Status from the MPIResult object.

This function is only available if the underlying status is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying status object.

◆ get() [1/4]

template<typename... Args>
template<internal::ParameterType ptype, typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< ptype, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get ( )
inline

Gets the parameter with given parameter type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
ptypeParameter type of the buffer to be retrieved.
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the requested parameter.

◆ get() [2/4]

template<typename... Args>
template<std::size_t i>
auto & kamping::MPIResult< Args >::get ( )
inline

Get the underlying data from the i-th buffer in the result object. This method is part of the structured binding enabling machinery.

Template Parameters
iIndex of the data buffer to extract.
Returns
Returns a reference to the underlying data of the i-th data buffer.

◆ get() [3/4]

template<typename... Args>
template<internal::ParameterType ptype, typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< ptype, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get ( ) const
inline

Gets the parameter with given parameter type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
ptypeParameter type of the buffer to be retrieved.
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the requested parameter.

◆ get() [4/4]

template<typename... Args>
template<std::size_t i>
auto const & kamping::MPIResult< Args >::get ( ) const
inline

Get the underlying data from the i-th buffer in the result object. This method is part of the structured binding enabling machinery.

Template Parameters
iIndex of the data buffer to extract.
Returns
Returns a reference to the underlying data of the i-th data buffer.

◆ get_recv_buf() [1/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_buf ( )
inline

Get the recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buf() [2/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_buf ( )
inline

Get the send_recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buf() [3/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_buf ( ) const
inline

Get the recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buf() [4/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_buf ( ) const
inline

Get the send_recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buffer() [1/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_buffer ( )
inline

Get the recv_buffer from the MPIResult object. Alias for get_recv_buf().

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buffer() [2/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_buffer ( )
inline

Get the send_recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buffer() [3/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_buf, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_buffer ( ) const
inline

Get the recv_buffer from the MPIResult object. Alias for get_recv_buf().

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_buffer() [4/4]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_buf, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_buffer ( ) const
inline

Get the send_recv_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the received elements.

◆ get_recv_count() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_count, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_count ( )
inline

Gets the recv_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the recv count.

◆ get_recv_count() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_count, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_count ( ) const
inline

Gets the recv_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the recv count.

◆ get_recv_counts() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_counts, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_counts ( )
inline

Get the recv_counts from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the receive counts.

◆ get_recv_counts() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_counts, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_counts ( ) const
inline

Get the recv_counts from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the receive counts.

◆ get_recv_displs() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_displs, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_displs ( )
inline

Gets the recv_displs from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the receive displacements.

◆ get_recv_displs() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_displs, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_displs ( ) const
inline

Gets the recv_displs from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the receive displacements.

◆ get_recv_type() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_type, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_recv_type ( )
inline

Gets the recv_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send_type.

◆ get_recv_type() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::recv_type, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_recv_type ( ) const
inline

Gets the recv_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send_type.

◆ get_send_buf()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_buf, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_buf ( ) const
inline

Get the send_buffer from the MPIResult object.

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the elements to send.

◆ get_send_buffer()

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_buf, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_buffer ( ) const
inline

Get the send_buffer from the MPIResult object. Alias for get_send_buf().

This function is only available if the underlying memory is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the elements to send.

◆ get_send_count() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_count, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_send_count ( )
inline

Gets the send_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send counts.

◆ get_send_count() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_count, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_count ( ) const
inline

Gets the send_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send counts.

◆ get_send_counts() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_counts, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_send_counts ( )
inline

Gets the send_counts from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send counts.

◆ get_send_counts() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_counts, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_counts ( ) const
inline

Gets the send_counts from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send counts.

◆ get_send_displs() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_displs, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_send_displs ( )
inline

Gets the send_displs from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send displacements.

◆ get_send_displs() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_displs, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_displs ( ) const
inline

Gets the send_displs from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send displacements.

◆ get_send_recv_count() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_count, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_send_recv_count ( )
inline

Gets the send_recv_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send_recv_count.

◆ get_send_recv_count() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_count, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_recv_count ( ) const
inline

Gets the send_recv_count from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send_recv_count.

◆ get_send_recv_type() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_type, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_send_recv_type ( )
inline

Gets the send_recv_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send_recv_type.

◆ get_send_recv_type() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_recv_type, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_recv_type ( ) const
inline

Gets the send_recv_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns the underlying storage containing the send_recv_type.

◆ get_send_type() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_type, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_send_type ( )
inline

Gets the send_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send_type.

◆ get_send_type() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::send_type, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_send_type ( ) const
inline

Gets the send_type from the MPIResult object.

This function is only available if the corresponding data is part of the result object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying storage containing the send_type.

◆ get_status() [1/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::status, T >(), bool > = true>
auto & kamping::MPIResult< Args >::get_status ( )
inline

Get the kamping::Status from the MPIResult object.

This function is only available if the underlying status is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying status object.

◆ get_status() [2/2]

template<typename... Args>
template<typename T = std::tuple<Args...>, std::enable_if_t< internal::has_parameter_type_in_tuple< internal::ParameterType::status, T >(), bool > = true>
auto const & kamping::MPIResult< Args >::get_status ( ) const
inline

Get the kamping::Status from the MPIResult object.

This function is only available if the underlying status is owned by the MPIResult object.

Template Parameters
TTemplate parameter helper only needed to remove this function if the corresponding data is not part of the result object.
Returns
Returns a reference to the underlying status object.

Member Data Documentation

◆ has_send_recv_buffer

template<typename... Args>
constexpr bool kamping::MPIResult< Args >::has_send_recv_buffer
staticconstexpr
Initial value:
=
constexpr bool has_parameter_type()
Checks if parameter with requested parameter type exists.
Definition named_parameter_selection.hpp:186

true, if the result encapsulates a send_recv_buf.


The documentation for this class was generated from the following file: