2
3
6
7
8
9
10
11
13#include <so_5/enveloped_msg.hpp>
15#include <so_5/impl/enveloped_msg_details.hpp>
24#pragma clang diagnostic push
25#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
32
33
34
35
36
61 case message_t::kind_t::user_type_message :
87#pragma clang diagnostic pop
98 return payload_access_handler_invoker_t
{
100 }.try_get_payload( envelope_to_process );
109 message_ref_t result = msg_or_envelope;
123 auto opt_payload = payload_access_handler_invoker_t
{
125 }.try_get_payload( msg_or_envelope );
128 result = opt_payload->message();
~payload_access_handler_invoker_t()=default
void invoke(const payload_info_t &payload) noexcept override
Call an actual handler for the enveloped message/signal.
optional< ::so_5::enveloped_msg::payload_info_t > m_payload
const access_context_t m_context
payload_access_handler_invoker_t(access_context_t context)
optional< so_5::enveloped_msg::payload_info_t > try_get_payload(const message_ref_t &envelope_to_process) noexcept
virtual void access_hook(access_context_t context, handler_invoker_t &invoker) noexcept=0
An extended version of handling_context which can be used for calling event handler.
An information about payload inside envelope.
message_ref_t & message() const noexcept
A base class for agent messages.
friend message_kind_t message_kind(const so_5::intrusive_ptr_t< message_t > &what)
Helper method for quering kind of the message.
envelope_t & message_to_envelope(const message_ref_t &src_msg)
A helper function for casting message instance to envelope instance.
SO_5_FUNC optional< message_ref_t > message_to_be_inspected(const message_ref_t &msg_or_envelope)
Helper function for extraction of a payload from enveloped message.
SO_5_FUNC optional< payload_info_t > extract_payload_for_message_transformation(const message_ref_t &envelope)
Helper function for extraction of a payload from enveloped message.
access_context_t
Information about context on that enveloped message is handled.
Private part of message limit implementation.
@ user_type_message
Message is an user type message.
@ enveloped_msg
Message is an envelope with some other message inside.