SObjectizer-5 Extra
Public Member Functions | Private Member Functions | Private Attributes | List of all members
so_5::extra::revocable_msg::details::envelope_t Class Referencefinal

A special envelope to be used for revocable messages. More...

#include <pub.hpp>

Inheritance diagram for so_5::extra::revocable_msg::details::envelope_t:

Public Member Functions

 envelope_t (so_5::message_ref_t payload)
 
void revoke () noexcept
 
bool has_been_revoked () const noexcept
 
void access_hook (access_context_t, handler_invoker_t &invoker) noexcept override
 

Private Member Functions

void do_if_not_revoked_yet (handler_invoker_t &invoker) const noexcept
 
message_mutability_t so5_message_mutability () const noexcept override
 
void so5_change_mutability (message_mutability_t) override
 

Private Attributes

std::atomic_bool m_revoked { false }
 Has message been revoked? More...
 
so_5::message_ref_t m_payload
 Message to be delivered. More...
 

Detailed Description

A special envelope to be used for revocable messages.

This envelope uses an atomic flag. When this flag is set to true the message becomes revoked. Value of this flag is checked in access_hook(). If the message if revoked that handler do nothing.

Note
This class is intended to be used with invocation_type_t::event and invocation_type_t::enveloped_msg. Service requests are not supported.
Since
v.1.2.0

Definition at line 75 of file pub.hpp.

Constructor & Destructor Documentation

◆ envelope_t()

so_5::extra::revocable_msg::details::envelope_t::envelope_t ( so_5::message_ref_t  payload)
inline

Definition at line 117 of file pub.hpp.

Member Function Documentation

◆ access_hook()

void so_5::extra::revocable_msg::details::envelope_t::access_hook ( access_context_t  ,
handler_invoker_t &  invoker 
)
inlineoverridenoexcept

Definition at line 134 of file pub.hpp.

◆ do_if_not_revoked_yet()

void so_5::extra::revocable_msg::details::envelope_t::do_if_not_revoked_yet ( handler_invoker_t &  invoker) const
inlineprivatenoexcept

Definition at line 84 of file pub.hpp.

◆ has_been_revoked()

bool so_5::extra::revocable_msg::details::envelope_t::has_been_revoked ( ) const
inlinenoexcept

Definition at line 128 of file pub.hpp.

◆ revoke()

void so_5::extra::revocable_msg::details::envelope_t::revoke ( )
inlinenoexcept

Definition at line 122 of file pub.hpp.

◆ so5_change_mutability()

void so_5::extra::revocable_msg::details::envelope_t::so5_change_mutability ( message_mutability_t  )
inlineoverrideprivate

Definition at line 106 of file pub.hpp.

◆ so5_message_mutability()

message_mutability_t so_5::extra::revocable_msg::details::envelope_t::so5_message_mutability ( ) const
inlineoverrideprivatenoexcept

Definition at line 99 of file pub.hpp.

Member Data Documentation

◆ m_payload

so_5::message_ref_t so_5::extra::revocable_msg::details::envelope_t::m_payload
private

Message to be delivered.

Definition at line 81 of file pub.hpp.

◆ m_revoked

std::atomic_bool so_5::extra::revocable_msg::details::envelope_t::m_revoked { false }
private

Has message been revoked?

Definition at line 78 of file pub.hpp.


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