DelegateMQ
Loading...
Searching...
No Matches
dmq::DelegateAsyncMsg< Args > Class Template Reference

Stores all function arguments suitable for non-blocking asynchronous calls. Argument data is stored in the heap. More...

#include <DelegateAsync.h>

Inheritance diagram for dmq::DelegateAsyncMsg< Args >:
dmq::DelegateMsg

Public Member Functions

 DelegateAsyncMsg (std::shared_ptr< IThreadInvoker > invoker, Args... args)
 
 DelegateAsyncMsg ()=delete
 Delete the default constructor.
 
 DelegateAsyncMsg (const DelegateAsyncMsg &)=delete
 Delete the copy constructor.
 
DelegateAsyncMsgoperator= (const DelegateAsyncMsg &)=delete
 Delete the copy assignment operator.
 
 DelegateAsyncMsg (DelegateAsyncMsg &&)=delete
 Delete the move constructor and move assignment.
 
DelegateAsyncMsgoperator= (DelegateAsyncMsg &&)=delete
 
virtual ~DelegateAsyncMsg ()=default
 
std::tuple< Args... > & GetArgs ()
 
- Public Member Functions inherited from dmq::DelegateMsg
 DelegateMsg (std::shared_ptr< IThreadInvoker > invoker)
 
virtual ~DelegateMsg ()=default
 
std::shared_ptr< IThreadInvokerGetInvoker () const
 

Detailed Description

template<class... Args>
class dmq::DelegateAsyncMsg< Args >

Stores all function arguments suitable for non-blocking asynchronous calls. Argument data is stored in the heap.

Template Parameters
ArgsThe argument types of the bound delegate function.

Constructor & Destructor Documentation

◆ DelegateAsyncMsg() [1/4]

template<class... Args>
dmq::DelegateAsyncMsg< Args >::DelegateAsyncMsg ( std::shared_ptr< IThreadInvoker > invoker,
Args... args )
inline

Constructor

Parameters
[in]invoker- the invoker instance
[in]args- a parameter pack of all target function arguments
Exceptions
std::bad_allocIf make_tuble_heap() fails to obtain memory and DMQ_ASSERTS not defined.

◆ DelegateAsyncMsg() [2/4]

template<class... Args>
dmq::DelegateAsyncMsg< Args >::DelegateAsyncMsg ( )
delete

Delete the default constructor.

◆ DelegateAsyncMsg() [3/4]

template<class... Args>
dmq::DelegateAsyncMsg< Args >::DelegateAsyncMsg ( const DelegateAsyncMsg< Args > & )
delete

Delete the copy constructor.

◆ DelegateAsyncMsg() [4/4]

template<class... Args>
dmq::DelegateAsyncMsg< Args >::DelegateAsyncMsg ( DelegateAsyncMsg< Args > && )
delete

Delete the move constructor and move assignment.

◆ ~DelegateAsyncMsg()

template<class... Args>
virtual dmq::DelegateAsyncMsg< Args >::~DelegateAsyncMsg ( )
virtualdefault

Member Function Documentation

◆ GetArgs()

template<class... Args>
std::tuple< Args... > & dmq::DelegateAsyncMsg< Args >::GetArgs ( )
inline

Get all function arguments that were created on the heap

Returns
A tuple of all function arguments

◆ operator=() [1/2]

template<class... Args>
DelegateAsyncMsg & dmq::DelegateAsyncMsg< Args >::operator= ( const DelegateAsyncMsg< Args > & )
delete

Delete the copy assignment operator.

◆ operator=() [2/2]

template<class... Args>
DelegateAsyncMsg & dmq::DelegateAsyncMsg< Args >::operator= ( DelegateAsyncMsg< Args > && )
delete

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