11 #include <so_5/version.hpp> 13 #include <so_5_extra/error_ranges.hpp> 15 #include <so_5/enveloped_msg.hpp> 16 #include <so_5/send_functions.hpp> 75 class envelope_t
final :
public so_5::enveloped_msg::envelope_t
85 handler_invoker_t & invoker )
const noexcept 91 invoker.invoke( payload_info_t{ m_payload } );
101 return message_mutability( m_payload );
109 SO_5_THROW_EXCEPTION(
110 so_5::extra::revocable_msg::errors
111 ::rc_mutabilty_of_envelope_cannot_be_changed,
112 "revocable_msg's envelope prohibit changing of " 113 "message mutability" );
124 m_revoked.store(
true, std::memory_order_release );
130 return m_revoked.load( std::memory_order_acquire );
136 handler_invoker_t & invoker )
noexcept override 142 invoker.invoke( payload_info_t{ m_payload } );
202 class delivery_id_t
final 214 so_5::intrusive_ptr_t< details::envelope_t > envelope )
231 delivery_id_t &
operator=(
const delivery_id_t & ) =
delete;
235 delivery_id_t &
operator=( delivery_id_t && )
noexcept =
default;
238 swap( delivery_id_t & a, delivery_id_t & b )
noexcept 240 a.m_envelope.swap( b.m_envelope );
253 m_envelope->revoke();
279 return m_envelope ? m_envelope->has_been_revoked() :
true;
290 template<
typename...
Args >
322 template<
class Message,
bool Is_Signal >
325 template<
typename...
Args >
345 template<
class Message >
362 template<
class Message >
417 template<
typename Message,
typename Target,
typename... Args >
418 SO_5_NODISCARD delivery_id_t
426 return impl::instantiator_and_sender< Message >::send(
427 so_5::send_functions_details::arg_to_mbox(
428 std::forward< Target >( to ) ),
429 std::forward< Args >( args )... );
Ranges for error codes of each submodules.
static SO_5_NODISCARD so_5::extra::revocable_msg::delivery_id_t send(const so_5::mbox_t &to, Args &&... args)