CppWAMP
C++11 client library for the WAMP protocol
wamp::CoroEventUnpacker< TSlot, TArgs > Class Template Reference

Wrapper around an event 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

 CoroEventUnpacker (Slot slot)
 Constructor taking a callable target.
 
void operator() (Event event) const
 Spawns a new coroutine and executes the stored event slot. More...
 

Related Functions

(Note that these are not member functions.)

template<typename... TArgs, typename TSlot >
CoroEventUnpacker< DecayedSlot< TSlot >, TArgs... > unpackedCoroEvent (TSlot &&slot)
 

Detailed Description

template<typename TSlot, typename... TArgs>
class wamp::CoroEventUnpacker< TSlot, TArgs >

Wrapper around an event coroutine slot which automatically unpacks positional payload arguments.

The wamp::unpackedCoroEvent convenience function should be used to construct instances of CoroEventUnpacker.

See also
wamp::unpackedCoroEvent
Unpacked Coroutine Event Slots
Template Parameters
TSlotFunction type to be wrapped. Must have the signature void function(Event, TArgs..., boost::asio::yield_context).
TArgsList of static types the event slot expects following the Event parameter and preceding the boost::asio::yield_context parameter.

Member Function Documentation

◆ operator()()

template<typename S , typename... A>
void wamp::CoroEventUnpacker< S, A >::operator() ( Event  event) const

Spawns a new coroutine and executes the stored event slot.

The coroutine will be spawned using event.executor(). The event.args() positional arguments will be unpacked and passed to the stored event slot as additional parameters.

Friends And Related Function Documentation

◆ unpackedCoroEvent()

template<typename... TArgs, typename TSlot >
CoroEventUnpacker< DecayedSlot< TSlot >, TArgs... > unpackedCoroEvent ( TSlot &&  slot)
related

Converts an unpacked event slot into a regular slot than can be passed to Session::subscribe. The slot will be executed within the context of a coroutine and will be given a boost::asio::yield_context as the last call argument.

See also
Unpacked Coroutine Event Slots
Returns
An CoroEventUnpacker that wraps the the given slot.
Template Parameters
TArgsList of static types the event slot expects following the Event parameter, and preceding the boost::asio::yield_context parameter.
TSlot(deduced) Function type to be converted. Must have the signature void function(Event, TArgs..., boost::asio::yield_context).

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