CppWAMP
C++11 client library for the WAMP protocol
|
Wrapper around a call coroutine slot which automatically unpacks positional payload arguments. More...
#include <cppwamp/corounpacker.hpp>
Public Types | |
using | Slot = TSlot |
The function type to be wrapped. | |
Public Member Functions | |
CoroInvocationUnpacker (Slot slot) | |
Constructor taking a callable target. | |
Outcome | operator() (Invocation inv) const |
Spawns a new coroutine and executes the stored call slot. More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<typename... TArgs, typename TSlot > | |
CoroInvocationUnpacker< DecayedSlot< TSlot >, TArgs... > | unpackedCoroRpc (TSlot &&slot) |
Wrapper around a call coroutine slot which automatically unpacks positional payload arguments.
The wamp::unpackedCoroRpc convenience function should be used to construct instances of CoroInvocationUnpacker.
TSlot | Function type to be wrapped. Must have the signature void function(Invocation, TArgs..., boost::asio::yield_context) . |
TArgs | List of static types the call slot expects following the Invocation parameter, and preceding the boost::asio::yield_context parameter. |
Outcome wamp::CoroInvocationUnpacker< S, A >::operator() | ( | Invocation | inv | ) | const |
Spawns a new coroutine and executes the stored call slot.
The coroutine will be spawned using inv.executor()
. The inv.args()
positional arguments will be unpacked and passed to the stored call slot as additional parameters.
|
related |
Converts an unpacked call slot into a regular slot than can be passed to Session::enroll.
TArgs | List of static types the call slot expects following the Invocation parameter, and preceding the boost::asio::yield_context parameter. |
TSlot | (deduced) Function type to be converted. Must have the signature Outcome function(Invocation, TArgs..., boost::asio::yield_context) . |