|
DelegateMQ
|
Helper functions for creating dynamic copies of function arguments stored within a tuple. More...
Go to the source code of this file.
Classes | |
| struct | dmq::is_shared_ptr< T > |
| struct | dmq::is_shared_ptr< std::shared_ptr< T > > |
| struct | dmq::is_shared_ptr< std::shared_ptr< T > & > |
| struct | dmq::is_shared_ptr< const std::shared_ptr< T > & > |
| struct | dmq::is_shared_ptr< std::shared_ptr< T > * > |
| struct | dmq::is_shared_ptr< const std::shared_ptr< T > * > |
| struct | dmq::is_unique_ptr< T > |
| struct | dmq::is_unique_ptr< std::unique_ptr< T > > |
| class | dmq::heap_arg_deleter_base |
| Base class for all deleter's. More... | |
| class | dmq::heap_arg_deleter< T > |
| Frees heap memory for reference heap argument. More... | |
| class | dmq::heap_arg_deleter< T * > |
| Frees heap memory for pointer heap argument. More... | |
| class | dmq::heap_arg_deleter< T ** > |
| Frees heap memory for pointer to pointer heap argument. More... | |
Namespaces | |
| namespace | dmq |
| The delegate library namespace. | |
Functions | |
| template<typename Arg , typename... TupleElem> | |
| auto | dmq::tuple_append (xlist< std::shared_ptr< heap_arg_deleter_base > > &heapArgs, const std::tuple< TupleElem... > &tup, Arg **arg) |
| Append a pointer to pointer argument to the tuple. | |
| template<typename Arg , typename... TupleElem> | |
| auto | dmq::tuple_append (xlist< std::shared_ptr< heap_arg_deleter_base > > &heapArgs, const std::tuple< TupleElem... > &tup, Arg *arg) |
| Append a pointer argument to the tuple. | |
| template<typename Arg , typename... TupleElem> | |
| auto | dmq::tuple_append (xlist< std::shared_ptr< heap_arg_deleter_base > > &heapArgs, const std::tuple< TupleElem... > &tup, Arg &arg) |
| Append a reference argument to the tuple. | |
| template<typename... Ts> | |
| auto | dmq::make_tuple_heap (xlist< std::shared_ptr< heap_arg_deleter_base > > &heapArgs, std::tuple< Ts... > tup) |
| Terminate the template metaprogramming argument loop. This function is called when there are no more arguments to process. | |
| template<typename Arg1 , typename... Args, typename... Ts> | |
| auto | dmq::make_tuple_heap (xlist< std::shared_ptr< heap_arg_deleter_base > > &heapArgs, std::tuple< Ts... > tup, Arg1 arg1, Args... args) |
Creates a tuple with all tuple elements created on the heap using operator new(). | |
Helper functions for creating dynamic copies of function arguments stored within a tuple.
The template function make_tuple_heap() creates dynamic copies of function arguments, storing them within a tuple for transport through a thread message queue. It supports all types of function arguments, including by value, pointer, pointer-to-pointer, and reference.
The destination thread uses std::apply() to invoke the target function using the tuple of arguments. See Invoke() and DelegateAsyncMsg() in the file DelegateAsync.h for example usage.