dune-common 2.9.1
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
Dune::MPIPack Class Reference

#include <dune/common/parallel/mpipack.hh>

Public Member Functions

 MPIPack (Communication< MPI_Comm > comm, std::size_t size=0)
 
 MPIPack (const MPIPack &)=delete
 
MPIPackoperator= (const MPIPack &other)=delete
 
 MPIPack (MPIPack &&)=default
 
MPIPackoperator= (MPIPack &&other)=default
 
template<class T >
void pack (const T &data)
 Packs the data into the object. Enlarges the internal buffer if necessary.
 
template<class T >
auto unpack (T &data) -> std::enable_if_t< decltype(getMPIData(data))::static_size, void >
 Unpacks data from the object.
 
template<class T >
auto unpack (T &data) -> std::enable_if_t<!decltype(getMPIData(data))::static_size, void >
 Unpacks data from the object.
 
template<typename T >
MPIPackread (T &t)
 Unpacks data from the object.
 
template<typename T >
MPIPackwrite (const T &t)
 Packs the data into the object. Enlarges the internal buffer if necessary.
 
void resize (size_t size)
 Resizes the internal buffer.
 
void enlarge (int s)
 Enlarges the internal buffer.
 
size_t size () const
 Returns the size of the internal buffer.
 
void seek (int p)
 Sets the position in the buffer where the next pack/unpack operation should take place.
 
int tell () const
 Gets the position in the buffer where the next pack/unpack operation should take place.
 
bool eof () const
 Checks whether the end of the buffer is reached.
 

Static Public Member Functions

static int getPackSize (int len, const MPI_Comm &comm, const MPI_Datatype &dt)
 Returns the size of the data needed to store the data in an MPIPack. See MPI_Pack_size.
 

Constructor & Destructor Documentation

◆ MPIPack() [1/3]

Dune::MPIPack::MPIPack ( Communication< MPI_Comm > comm,
std::size_t size = 0 )
inline

◆ MPIPack() [2/3]

Dune::MPIPack::MPIPack ( const MPIPack & )
delete

◆ MPIPack() [3/3]

Dune::MPIPack::MPIPack ( MPIPack && )
default

Member Function Documentation

◆ enlarge()

void Dune::MPIPack::enlarge ( int s)
inline

Enlarges the internal buffer.

◆ eof()

bool Dune::MPIPack::eof ( ) const
inline

Checks whether the end of the buffer is reached.

◆ getPackSize()

static int Dune::MPIPack::getPackSize ( int len,
const MPI_Comm & comm,
const MPI_Datatype & dt )
inlinestatic

Returns the size of the data needed to store the data in an MPIPack. See MPI_Pack_size.

◆ operator=() [1/2]

MPIPack & Dune::MPIPack::operator= ( const MPIPack & other)
delete

◆ operator=() [2/2]

MPIPack & Dune::MPIPack::operator= ( MPIPack && other)
default

◆ pack()

template<class T >
void Dune::MPIPack::pack ( const T & data)
inline

Packs the data into the object. Enlarges the internal buffer if necessary.

Exceptions
MPIError

◆ read()

template<typename T >
MPIPack & Dune::MPIPack::read ( T & t)
inline

Unpacks data from the object.

Exceptions
MPIError

◆ resize()

void Dune::MPIPack::resize ( size_t size)
inline

Resizes the internal buffer.

Parameters
sizenew size of internal buffer

◆ seek()

void Dune::MPIPack::seek ( int p)
inline

Sets the position in the buffer where the next pack/unpack operation should take place.

◆ size()

size_t Dune::MPIPack::size ( ) const
inline

Returns the size of the internal buffer.

◆ tell()

int Dune::MPIPack::tell ( ) const
inline

Gets the position in the buffer where the next pack/unpack operation should take place.

◆ unpack() [1/2]

template<class T >
auto Dune::MPIPack::unpack ( T & data) -> std::enable_if_t<decltype(getMPIData(data))::static_size, void>
inline

Unpacks data from the object.

Exceptions
MPIError

◆ unpack() [2/2]

template<class T >
auto Dune::MPIPack::unpack ( T & data) -> std::enable_if_t<!decltype(getMPIData(data))::static_size, void>
inline

Unpacks data from the object.

Exceptions
MPIError

◆ write()

template<typename T >
MPIPack & Dune::MPIPack::write ( const T & t)
inline

Packs the data into the object. Enlarges the internal buffer if necessary.

Exceptions
MPIError

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