DelegateMQ
|
The delegate library namespace. More...
Namespaces | |
namespace | trait |
Classes | |
struct | Delegate |
class | Delegate< RetType(Args...)> |
Template base class for all delegates. More... | |
class | DelegateAsyncMsg |
Stores all function arguments suitable for non-blocking asynchronous calls. Argument data is stored in the heap. More... | |
class | DelegateAsyncWaitMsg |
Stores all function arguments suitable for blocking asynchronous calls. Argument data is not stored in the heap. More... | |
class | DelegateBase |
Non-template base class for all delegates. More... | |
struct | DelegateFree |
class | DelegateFree< RetType(Args...)> |
DelegateFree<> class synchronously invokes a free target function. More... | |
struct | DelegateFreeAsync |
class | DelegateFreeAsync< RetType(Args...)> |
DelegateFreeAsync<> class asynchronously invokes a free target function. More... | |
struct | DelegateFreeAsyncWait |
class | DelegateFreeAsyncWait< RetType(Args...)> |
DelegateFreeAsyncWait<> class asynchronously block invokes a free target function. More... | |
struct | DelegateFreeRemote |
class | DelegateFreeRemote< RetType(Args...)> |
DelegateFreeRemote<> class asynchronously invokes a free target function. More... | |
class | DelegateFunction |
class | DelegateFunction< RetType(Args...)> |
DelegateFunction<> class synchronously invokes a std::function target function. More... | |
struct | DelegateFunctionAsync |
class | DelegateFunctionAsync< RetType(Args...)> |
DelegateFunctionAsync<> class asynchronously invokes a std::function target function. More... | |
struct | DelegateFunctionAsyncWait |
class | DelegateFunctionAsyncWait< RetType(Args...)> |
DelegateFunctionAsyncWait<> class asynchronously block invokes a std::function target function. More... | |
struct | DelegateFunctionRemote |
class | DelegateFunctionRemote< RetType(Args...)> |
DelegateFunctionRemote<> class asynchronously invokes a std::function target function. More... | |
struct | DelegateMember |
class | DelegateMember< TClass, RetType(Args...)> |
DelegateMember<> class synchronously invokes a class member target function using a class object pointer or shared pointer. More... | |
struct | DelegateMemberAsync |
class | DelegateMemberAsync< TClass, RetType(Args...)> |
DelegateMemberAsync<> class asynchronously invokes a class member target function. More... | |
struct | DelegateMemberAsyncWait |
class | DelegateMemberAsyncWait< TClass, RetType(Args...)> |
DelegateMemberAsyncWait<> class asynchronously block invokes a class member target function. More... | |
struct | DelegateMemberRemote |
class | DelegateMemberRemote< TClass, RetType(Args...)> |
DelegateMemberRemote<> class asynchronously invokes a class member target function. More... | |
class | DelegateMsg |
Base class for all delegate inter-thread messages. More... | |
class | heap_arg_deleter |
Frees heap memory for reference heap argument. More... | |
class | heap_arg_deleter< T * > |
Frees heap memory for pointer heap argument. More... | |
class | heap_arg_deleter< T ** > |
Frees heap memory for pointer to pointer heap argument. More... | |
class | heap_arg_deleter_base |
Base class for all deleter's. More... | |
class | IDispatcher |
Delegate interface class to dispatch serialized function argument data to a remote destination. Implemented by the application if using remote delegates. More... | |
class | IRemoteInvoker |
Abstract base class to support remote delegate function invoke to a remote system. Used internally by the delegate library, not user application code. More... | |
struct | is_shared_ptr |
struct | is_shared_ptr< const std::shared_ptr< T > & > |
struct | is_shared_ptr< const std::shared_ptr< T > * > |
struct | is_shared_ptr< std::shared_ptr< T > & > |
struct | is_shared_ptr< std::shared_ptr< T > * > |
struct | is_shared_ptr< std::shared_ptr< T > > |
struct | is_unique_ptr |
struct | is_unique_ptr< std::unique_ptr< T > > |
struct | ISerializer |
class | ISerializer< RetType(Args...)> |
Delegate serializer interface for serializing and deserializing remote delegate arguments. Implemented by application code if remote delegates are used. More... | |
class | IThread |
class | IThreadInvoker |
Abstract base class to support asynchronous delegate function invoke on destination thread of control. Used internally by the delegate library, not user application code. More... | |
struct | MulticastDelegate |
class | MulticastDelegate< RetType(Args...)> |
Not thread-safe multicast delegate container class. The class has a list of Delegate<> instances. When invoked, each Delegate instance within the invocation list is called. More... | |
struct | MulticastDelegateSafe |
class | MulticastDelegateSafe< RetType(Args...)> |
Thread-safe multicast delegate container class. More... | |
class | RemoteArg |
class | RemoteArg< Arg & > |
class | RemoteArg< Arg * > |
class | RemoteArg< Arg ** > |
class | Semaphore |
A semaphore wrapper class. More... | |
struct | UnicastDelegate |
class | UnicastDelegate< RetType(Args...)> |
A non-thread-safe delegate container storing one delegate. Void and non-void return values supported. More... | |
struct | UnicastDelegateSafe |
class | UnicastDelegateSafe< RetType(Args...)> |
A thread-safe delegate container storing one delegate. Void and non-void return values supported. More... | |
Typedefs | |
using | Duration = std::chrono::duration<uint32_t, std::milli> |
typedef int | DelegateErrorAux |
template<size_t N, class... Args> | |
using | ArgTypeOf |
typedef uint16_t | DelegateRemoteId |
Enumerations | |
enum class | DelegateError { SUCCESS = 0 , ERR_STREAM_NOT_GOOD = 1 , ERR_NO_SERIALIZER = 2 , ERR_SERIALIZE = 3 , ERR_DESERIALIZE = 4 , ERR_DESERIALIZE_EXCEPTION = 5 , ERR_NO_DISPATCHER = 6 , ERR_DISPATCH = 7 } |
Functions | |
template<class RetType , class... Args> | |
auto | MakeDelegate (RetType(*func)(Args... args)) |
Creates a delegate that binds to a free function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (TClass *object, RetType(TClass::*func)(Args... args)) |
Creates a delegate that binds to a non-const member function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (const TClass *object, RetType(TClass::*func)(Args... args) const) |
Creates a delegate that binds to a const member function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (std::shared_ptr< TClass > object, RetType(TClass::*func)(Args... args)) |
Creates a delegate that binds to a non-const member function with a shared pointer to the object. | |
template<class RetType , class... Args> | |
auto | MakeDelegate (std::function< RetType(Args...)> func) |
Creates a delegate that binds to a std::function . | |
template<class RetType , class... Args> | |
auto | MakeDelegate (RetType(*func)(Args... args), IThread &thread) |
Creates an asynchronous delegate that binds to a free function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (TClass *object, RetType(TClass::*func)(Args... args), IThread &thread) |
Creates an asynchronous delegate that binds to a non-const member function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (const TClass *object, RetType(TClass::*func)(Args... args) const, IThread &thread) |
Creates a delegate that binds to a const member function. | |
template<class TClass , class RetVal , class... Args> | |
auto | MakeDelegate (std::shared_ptr< TClass > object, RetVal(TClass::*func)(Args... args), IThread &thread) |
Creates an asynchronous delegate that binds to a non-const member function using a shared pointer. | |
template<class RetType , class... Args> | |
auto | MakeDelegate (std::function< RetType(Args...)> func, IThread &thread) |
Creates an asynchronous delegate that binds to a std::function . | |
template<class RetType , class... Args> | |
auto | MakeDelegate (RetType(*func)(Args... args), IThread &thread, Duration timeout) |
Creates an asynchronous delegate that binds to a free function with a wait and timeout. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (TClass *object, RetType(TClass::*func)(Args... args), IThread &thread, Duration timeout) |
Creates an asynchronous delegate that binds to a non-const member function with a wait and timeout. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (const TClass *object, RetType(TClass::*func)(Args... args) const, IThread &thread, Duration timeout) |
Creates a delegate that binds to a const member function. | |
template<class TClass , class RetVal , class... Args> | |
auto | MakeDelegate (std::shared_ptr< TClass > object, RetVal(TClass::*func)(Args... args), IThread &thread, Duration timeout) |
Creates an asynchronous delegate that binds to a non-const member function using a shared pointer, with a wait and timeout. | |
template<class RetType , class... Args> | |
auto | MakeDelegate (std::function< RetType(Args...)> func, IThread &thread, Duration timeout) |
Creates an asynchronous delegate that binds to a std::function with a wait and timeout. | |
template<size_t N, class... Args> | |
decltype(auto) | ArgValueOf (Args &&... ts) |
template<class RetType , class... Args> | |
auto | MakeDelegate (RetType(*func)(Args... args), DelegateRemoteId id) |
Creates an asynchronous delegate that binds to a free function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (TClass *object, RetType(TClass::*func)(Args... args), DelegateRemoteId id) |
Creates an asynchronous delegate that binds to a non-const member function. | |
template<class TClass , class RetType , class... Args> | |
auto | MakeDelegate (const TClass *object, RetType(TClass::*func)(Args... args) const, DelegateRemoteId id) |
Creates a delegate that binds to a const member function. | |
template<class TClass , class RetVal , class... Args> | |
auto | MakeDelegate (std::shared_ptr< TClass > object, RetVal(TClass::*func)(Args... args), DelegateRemoteId id) |
Creates an asynchronous delegate that binds to a non-const member function using a shared pointer. | |
template<class RetType , class... Args> | |
auto | MakeDelegate (std::function< RetType(Args...)> func, DelegateRemoteId id) |
Creates an asynchronous delegate that binds to a std::function . | |
template<typename Arg , typename... TupleElem> | |
auto | 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 | 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 | 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 | 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 | 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() . | |
Variables | |
constexpr auto | WAIT_INFINITE = Duration::max() |
const uint16_t | INVALID_REMOTE_ID = -1 |
const uint16_t | ACK_REMOTE_ID = 0 |
The delegate library namespace.
using dmq::ArgTypeOf |
typedef int dmq::DelegateErrorAux |
typedef uint16_t dmq::DelegateRemoteId |
using dmq::Duration = std::chrono::duration<uint32_t, std::milli> |
|
strong |
decltype(auto) dmq::ArgValueOf | ( | Args &&... | 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.
Ts | The types of the remaining arguments. |
heapArgs | The list of deleters for heap - allocated arguments. |
tup | The current tuple of arguments. |
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()
.
Call with an empty list and empty tuple. The empty tuple is concatenated with each heap element. The list contains heap_arg_deleter_base
objects for each argument heap memory block that will be automatically deleted after the bound function is invoked on the target thread.
Arg1 | The type of the first argument. |
Args | The types of the remaining arguments. |
Ts | The types of the existing tuple elements. |
heapArgs | The list of deleters for heap - allocated arguments. |
tup | The existing tuple of arguments. Typically call with an empty tuple. |
arg1 | The first argument to append to the tuple. |
args | The remaining arguments to append to the tuple. |
std::bad_alloc | If dynamic allocation of arguments created on the heap for appending to the tuple fails and DMQ_ASSERTS not defined. |
auto dmq::MakeDelegate | ( | const TClass * | object, |
RetType(TClass::* | func )(Args... args) const ) |
Creates a delegate that binds to a const member function.
TClass | The const class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
DelegateMember
object bound to the specified non-const member function. auto dmq::MakeDelegate | ( | const TClass * | object, |
RetType(TClass::* | func )(Args... args) const, | ||
DelegateRemoteId | id ) |
Creates a delegate that binds to a const member function.
TClass | The const class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateMemberRemote
object bound to the specified non-const member function. auto dmq::MakeDelegate | ( | const TClass * | object, |
RetType(TClass::* | func )(Args... args) const, | ||
IThread & | thread ) |
Creates a delegate that binds to a const member function.
TClass | The const class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateMemberAsync
object bound to the specified non-const member function. auto dmq::MakeDelegate | ( | const TClass * | object, |
RetType(TClass::* | func )(Args... args) const, | ||
IThread & | thread, | ||
Duration | timeout ) |
Creates a delegate that binds to a const member function.
TClass | The const class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateMemberAsyncWait
object bound to the specified non-const member function. auto dmq::MakeDelegate | ( | RetType(* | func )(Args... args) | ) |
Creates a delegate that binds to a free function.
RetType | The return type of the free function. |
Args | The types of the function arguments. |
[in] | func | A pointer to the free function to bind to the delegate. |
DelegateFree
object bound to the specified free function. auto dmq::MakeDelegate | ( | RetType(* | func )(Args... args), |
DelegateRemoteId | id ) |
Creates an asynchronous delegate that binds to a free function.
RetType | The return type of the free function. |
Args | The types of the function arguments. |
[in] | func | A pointer to the free function to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateFreeRemote
object bound to the specified free function and id. auto dmq::MakeDelegate | ( | RetType(* | func )(Args... args), |
IThread & | thread ) |
Creates an asynchronous delegate that binds to a free function.
RetType | The return type of the free function. |
Args | The types of the function arguments. |
[in] | func | A pointer to the free function to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateFreeAsync
object bound to the specified free function and thread. auto dmq::MakeDelegate | ( | RetType(* | func )(Args... args), |
IThread & | thread, | ||
Duration | timeout ) |
Creates an asynchronous delegate that binds to a free function with a wait and timeout.
RetType | The return type of the free function. |
Args | The types of the function arguments. |
[in] | func | A pointer to the free function to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateFreeAsyncWait
object bound to the specified free function, thread, and timeout. auto dmq::MakeDelegate | ( | std::function< RetType(Args...)> | func | ) |
Creates a delegate that binds to a std::function
.
RetType | The return type of the std::function . |
Args | The types of the function arguments. |
[in] | func | The std::function to bind to the delegate. |
DelegateFunction
object bound to the specified std::function
. auto dmq::MakeDelegate | ( | std::function< RetType(Args...)> | func, |
DelegateRemoteId | id ) |
Creates an asynchronous delegate that binds to a std::function
.
RetType | The return type of the std::function . |
Args | The types of the function arguments. |
[in] | func | The std::function to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateFunctionRemote
object bound to the specified std::function
and id. auto dmq::MakeDelegate | ( | std::function< RetType(Args...)> | func, |
IThread & | thread ) |
Creates an asynchronous delegate that binds to a std::function
.
RetType | The return type of the std::function . |
Args | The types of the function arguments. |
[in] | func | The std::function to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateFunctionAsync
object bound to the specified std::function
and thread. auto dmq::MakeDelegate | ( | std::function< RetType(Args...)> | func, |
IThread & | thread, | ||
Duration | timeout ) |
Creates an asynchronous delegate that binds to a std::function
with a wait and timeout.
RetType | The return type of the std::function . |
Args | The types of the function arguments. |
[in] | func | The std::function to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateFunctionAsyncWait
object bound to the specified std::function
, thread, and timeout. auto dmq::MakeDelegate | ( | std::shared_ptr< TClass > | object, |
RetType(TClass::* | func )(Args... args) ) |
Creates a delegate that binds to a non-const member function with a shared pointer to the object.
Creates a delegate that binds to a const member function with a shared pointer to the object.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
DelegateMember
shared pointer bound to the specified non-const member function.TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
DelegateMember
shared pointer bound to the specified const member function. auto dmq::MakeDelegate | ( | std::shared_ptr< TClass > | object, |
RetVal(TClass::* | func )(Args... args), | ||
DelegateRemoteId | id ) |
Creates an asynchronous delegate that binds to a non-const member function using a shared pointer.
Creates an asynchronous delegate that binds to a const member function using a shared pointer.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateMemberRemote
shared pointer bound to the specified non-const member function and id.TClass | The class type that contains the member function. |
RetVal | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateMemberRemote
shared pointer bound to the specified const member function and id. auto dmq::MakeDelegate | ( | std::shared_ptr< TClass > | object, |
RetVal(TClass::* | func )(Args... args), | ||
IThread & | thread ) |
Creates an asynchronous delegate that binds to a non-const member function using a shared pointer.
Creates an asynchronous delegate that binds to a const member function using a shared pointer.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateMemberAsync
shared pointer bound to the specified non-const member function and thread.TClass | The class type that contains the member function. |
RetVal | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateMemberAsync
shared pointer bound to the specified const member function and thread. auto dmq::MakeDelegate | ( | std::shared_ptr< TClass > | object, |
RetVal(TClass::* | func )(Args... args), | ||
IThread & | thread, | ||
Duration | timeout ) |
Creates an asynchronous delegate that binds to a non-const member function using a shared pointer, with a wait and timeout.
Creates an asynchronous delegate that binds to a const member function using a shared pointer, with a wait and timeout.
TClass | The class type that contains the member function. |
RetVal | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateMemberAsyncWait
shared pointer bound to the specified non-const member function, thread, and timeout.TClass | The class type that contains the member function. |
RetVal | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A shared pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateMemberAsyncWait
shared pointer bound to the specified const member function, thread, and timeout. auto dmq::MakeDelegate | ( | TClass * | object, |
RetType(TClass::* | func )(Args... args) ) |
Creates a delegate that binds to a non-const member function.
Creates a delegate that binds to a const member function.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
DelegateMember
object bound to the specified non-const member function.TClass | The class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
DelegateMember
object bound to the specified const member function. auto dmq::MakeDelegate | ( | TClass * | object, |
RetType(TClass::* | func )(Args... args), | ||
DelegateRemoteId | id ) |
Creates an asynchronous delegate that binds to a non-const member function.
Creates an asynchronous delegate that binds to a const member function.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateMemberRemote
object bound to the specified non-const member function and id.TClass | The class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
[in] | id | The delegate remote identifier. |
DelegateMemberRemote
object bound to the specified const member function and id. auto dmq::MakeDelegate | ( | TClass * | object, |
RetType(TClass::* | func )(Args... args), | ||
IThread & | thread ) |
Creates an asynchronous delegate that binds to a non-const member function.
Creates an asynchronous delegate that binds to a const member function.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateMemberAsync
object bound to the specified non-const member function and thread.TClass | The class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
DelegateMemberAsync
object bound to the specified const member function and thread. auto dmq::MakeDelegate | ( | TClass * | object, |
RetType(TClass::* | func )(Args... args), | ||
IThread & | thread, | ||
Duration | timeout ) |
Creates an asynchronous delegate that binds to a non-const member function with a wait and timeout.
Creates an asynchronous delegate that binds to a const member function with a wait and timeout.
TClass | The class type that contains the member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the non-const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateMemberAsyncWait
object bound to the specified non-const member function, thread, and timeout.TClass | The class type that contains the const member function. |
RetType | The return type of the member function. |
Args | The types of the function arguments. |
[in] | object | A pointer to the instance of TClass that will be used for the delegate. |
[in] | func | A pointer to the const member function of TClass to bind to the delegate. |
[in] | thread | The IThread on which the function will be invoked asynchronously. |
[in] | timeout | The duration to wait for the function to complete before returning. |
DelegateMemberAsyncWait
object bound to the specified const member function, thread, and timeout. 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.
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.
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.
const uint16_t dmq::ACK_REMOTE_ID = 0 |
const uint16_t dmq::INVALID_REMOTE_ID = -1 |
|
constexpr |