sigx++  2.0.1
Public Types | Public Member Functions
sigx::tunnel_context< ASYNC, T_return, T_unary_functor > Struct Template Reference

An asynchronous tunnel message. More...

#include <tunnel_context.h>

Inheritance diagram for sigx::tunnel_context< ASYNC, T_return, T_unary_functor >:
sigx::tunnel_context_base sigx::operator_new

Public Types

typedef tunnel_context< ASYNC, T_return, T_unary_functor > this_type
 
typedef T_return result_type
 

Public Member Functions

 tunnel_context (const shared_dispatchable &_A_disp, const tunnel_validity_tracker &_A_validity_tracker, typename sigc::type_trait< T_unary_functor >::take _A_func)
 
result_type tunnel ()
 dispatches the tunnel_context (itself) over the referenced dispatcher. More...
 
void invoke ()
 invokes the intended functor at the other end of the tunnel More...
 
- Public Member Functions inherited from sigx::tunnel_context_base
 tunnel_context_base (const shared_dispatchable &_A_disp, const tunnel_validity_tracker &_A_validity_tracker, bool sync=false)
 
virtual ~tunnel_context_base ()
 
bool is_sync () const
 
bool is_valid () const
 
const void * creator_thread () const
 
- Public Member Functions inherited from sigx::operator_new
void * operator new (std::size_t size)
 
void operator delete (void *p)
 
void * operator new[] (std::size_t size)
 
void operator delete[] (void *p)
 

Additional Inherited Members

- Protected Member Functions inherited from sigx::tunnel_context_base
void dispatch_me ()
 sends the tunnel context over the dispatcher. More...
 
- Protected Member Functions inherited from sigx::operator_new
 operator_new ()
 
 ~operator_new ()
 
- Protected Attributes inherited from sigx::tunnel_context_base
tunnel_validity_tracker m_validity_tracker
 
shared_dispatchable m_disp
 
bool m_sync
 
const void *const m_creator_thread
 

Detailed Description

template<typename T_return, typename T_unary_functor>
struct sigx::tunnel_context< ASYNC, T_return, T_unary_functor >

An asynchronous tunnel message.

Asynchronous tunnels store a copy of the passed arguments by value, thus ensuring valid argument transmission.

Note
Asynchronous tunnels disregard the return value of the invoked functor and return the return type's default value

Member Typedef Documentation

template<typename T_return , typename T_unary_functor >
typedef T_return sigx::tunnel_context< ASYNC, T_return, T_unary_functor >::result_type
template<typename T_return , typename T_unary_functor >
typedef tunnel_context<ASYNC, T_return, T_unary_functor> sigx::tunnel_context< ASYNC, T_return, T_unary_functor >::this_type

Constructor & Destructor Documentation

template<typename T_return , typename T_unary_functor >
sigx::tunnel_context< ASYNC, T_return, T_unary_functor >::tunnel_context ( const shared_dispatchable _A_disp,
const tunnel_validity_tracker _A_validity_tracker,
typename sigc::type_trait< T_unary_functor >::take  _A_func 
)
inline

Member Function Documentation

template<typename T_return , typename T_unary_functor >
void sigx::tunnel_context< ASYNC, T_return, T_unary_functor >::invoke ( )
inlinevirtual

invokes the intended functor at the other end of the tunnel

Implements sigx::tunnel_context_base.

template<typename T_return , typename T_unary_functor >
result_type sigx::tunnel_context< ASYNC, T_return, T_unary_functor >::tunnel ( )
inline

dispatches the tunnel_context (itself) over the referenced dispatcher.

References sigx::tunnel_context_base::dispatch_me().


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