Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Channel Class Reference

Channel class for asynchronous communication. More...

#include <channel.h>

Public Types

typedef char element_type
 data transfer is byte-wise. More...
 
typedef std::valarray
< element_type
container_type
 

Public Member Functions

 Channel ()
 constructor. More...
 
 Channel (const int count)
 constructor with buffer size (count bytes) More...
 
virtual ~Channel ()
 destructor More...
 
int start ()
 start asynchronous communication More...
 
int wait ()
 wait for completion More...
 
element_typeoperator[] (unsigned int idx)
 accessor to buffer More...
 
element_type operator[] (unsigned int idx) const
 accessor to buffer More...
 
const element_typeptr ()
 accessor to buffer; returns pointer to the first element. More...
 

Private Attributes

container_type m_buf
 buffer More...
 
MPI_Request m_request
 handler to MPI persistent communication More...
 
MPI_Status m_status
 handler to MPI status information More...
 

Friends

class Communicator_impl
 
class ChannelSet
 

Detailed Description

Channel class for asynchronous communication.

Channel class defines communication channel between sender and receiver for asynchronous data transfer. It actually provides a half-channel of sender part or receiver part. This class wraps MPI persistent communication, as well as send/receive buffer.

An instance of channel class is generated through Communicator send_int() and recv_init() methods. To access the buffer, operator[] is provided as if it is an ordinary container or array.

start() method to start async data transfer, and wait() method to wait for the completion of operation. the channel instance will be re-used repeatedly for the same communication channel once it is created.

Definition at line 51 of file channel.h.

Member Typedef Documentation

typedef std::valarray<element_type> Channel::container_type

Definition at line 54 of file channel.h.

typedef char Channel::element_type

data transfer is byte-wise.

Definition at line 53 of file channel.h.

Constructor & Destructor Documentation

Channel::Channel ( )

constructor.

Definition at line 89 of file channel.cpp.

Channel::Channel ( const int  count)

constructor with buffer size (count bytes)

Definition at line 95 of file channel.cpp.

Channel::~Channel ( )
virtual

destructor

Definition at line 101 of file channel.cpp.

Member Function Documentation

element_type& Channel::operator[] ( unsigned int  idx)
inline

accessor to buffer

Definition at line 64 of file channel.h.

element_type Channel::operator[] ( unsigned int  idx) const
inline

accessor to buffer

Definition at line 66 of file channel.h.

const element_type* Channel::ptr ( )
inline

accessor to buffer; returns pointer to the first element.

Definition at line 68 of file channel.h.

int Channel::start ( )

start asynchronous communication

Definition at line 107 of file channel.cpp.

int Channel::wait ( )

wait for completion

Definition at line 114 of file channel.cpp.

Friends And Related Function Documentation

friend class ChannelSet
friend

Definition at line 77 of file channel.h.

friend class Communicator_impl
friend

Definition at line 76 of file channel.h.

Member Data Documentation

container_type Channel::m_buf
private

buffer

Definition at line 71 of file channel.h.

MPI_Request Channel::m_request
private

handler to MPI persistent communication

Definition at line 73 of file channel.h.

MPI_Status Channel::m_status
private

handler to MPI status information

Definition at line 74 of file channel.h.


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