Mercury Currency Engine
Public Member Functions | List of all members
mce::chan< T > Struct Template Reference

#include <chan.hpp>

Inheritance diagram for mce::chan< T >:
Inheritance graph
[legend]
Collaboration diagram for mce::chan< T >:
Collaboration graph
[legend]

Public Member Functions

 chan (const chan< T > &rhs)
 
 chan (chan< T > &&rhs)
 
template<typename CHANNEL >
void construct (CHANNEL &&ch) const
 
void construct () const
 construct unbuffered channel context
 
void * context () const
 retrieve internal context pointer
 
const std::type_info & type_info () const
 retrieve type_info
 
const std::type_info & context_type_info () const
 
template<typename CHANNEL >
CHANNEL cast () const
 
void close () const
 close channel
 
bool closed () const
 report if channel is closed
 
bool send (const T &s) const
 send a copy of data through channel
 
bool send (T &&s) const
 move data through channel
 
bool recv (T &r) const
 retrieve data from channel
 
result try_send (const T &s) const
 attempt to send a copy of data through channel
 
result try_send (T &&s) const
 attempt to move data through channel
 
result try_recv (T &s) const
 attempt to retrieve data from channel
 
void assign (const chan< T > &rhs) const
 copy internal context of argument channel
 
void assign (chan< T > &&rhs) const
 move internal context of argument channel
 
const chan< T > & operator= (const chan< T > &rhs) const
 lvalue assign channel context
 
const chan< T > & operator= (chan< T > &&rhs) const
 rvalue assign channel context
 
- Public Member Functions inherited from mce::base_channel< T >
 base_channel (const base_channel< T > *rhs_bc)
 iterator context constructor
 
iterator begin () const
 iterator to the current beginning of the channel
 
iterator end () const
 default iterator == end()
 
- Public Member Functions inherited from mce::channel_operators< T, chan< T > >
 channel_operators (chan< T > *rhs_ch)
 context constructor
 
virtual ~channel_operators ()
 
 operator bool () const
 return whether channel has a shared context pointer
 
const chan< T > & operator= (const chan< T > &rhs) const
 lvalue assign channel context
 
const chan< T > & operator= (chan< T > &&rhs) const
 rvalue assign channel context
 
bool operator== (const chan< T > &rhs) const
 lvalue channel context comparison
 
bool operator== (chan< T > &&rhs) const
 rvalue channel context comparison
 
bool operator!= (const chan< T > &rhs) const
 lvalue channel context not comparison
 
bool operator!= (chan< T > &&rhs) const
 rvalue channel context not comparison
 
bool operator< (const chan< T > &rhs) const
 
bool operator< (chan< T > &&rhs) const
 
bool operator<= (const chan< T > &rhs) const
 
bool operator<= (chan< T > &&rhs) const
 
bool operator> (const chan< T > &rhs) const
 
bool operator> (chan< T > &&rhs) const
 
bool operator>= (const chan< T > &rhs) const
 
bool operator>= (chan< T > &&rhs) const
 

Additional Inherited Members

- Public Types inherited from mce::base_channel< T >
typedef T value_type
 template type for channel
 
- Static Public Member Functions inherited from mce::channel_operators< T, chan< T > >
static chan< T > make (As &&... as)
 

Detailed Description

template<typename T>
struct mce::chan< T >

A wrapper object which can represent any object which implements base_channel interface.

Member Function Documentation

◆ cast()

template<typename T >
template<typename CHANNEL >
CHANNEL mce::chan< T >::cast ( ) const
inline

Cast base_channel context to templated channel and return the result.

Operation was a success if the resulting channel is initialized, a non-default constructed version of the channel. An initialized channel will return non-NULL when context() is called.

◆ construct()

template<typename T >
template<typename CHANNEL >
void mce::chan< T >::construct ( CHANNEL &&  ch) const
inline

unique mechanism for constructing a chan<T> object using any object which implements base_channel<T,chan<T>>

◆ context_type_info()

template<typename T >
const std::type_info& mce::chan< T >::context_type_info ( ) const
inline

Retrieve type_info of underlying context. Because chan<T> is a wrapper to other channels, this may fail if chan<T> is uninitialized at the time of call.


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