SObjectizer-5 Extra
Loading...
Searching...
No Matches
pub.hpp File Reference

Support for hierarchy of message types. More...

#include <so_5/version.hpp>
#include <so_5_extra/error_ranges.hpp>
#include <so_5/unique_subscribers_mbox.hpp>
#include <so_5/environment.hpp>
#include <cstdint>
#include <iostream>
#include <memory>
#include <shared_mutex>
#include <type_traits>

Go to the source code of this file.

Classes

class  so_5::extra::msg_hierarchy::impl::message_upcaster_t
 Upcaster for a message. More...
 
class  so_5::extra::msg_hierarchy::impl::root_base_t
 Type to be the actual base class of all hierarchies. More...
 
class  so_5::extra::msg_hierarchy::root_t< Base >
 The base class that starts a separate hierarchy. More...
 
struct  so_5::extra::msg_hierarchy::impl::has_so_make_upcaster_method< B, typename >
 Metafunction for checking presence of so_make_upcaster method. More...
 
struct  so_5::extra::msg_hierarchy::impl::has_so_make_upcaster_method< B, std::void_t< decltype(&B::so_make_upcaster) > >
 Metafunction for checking presence of so_make_upcaster method. More...
 
class  so_5::extra::msg_hierarchy::node_t< Derived, Base >
 A special mixin to be used for every derived class in a hierarchy. More...
 
class  so_5::extra::msg_hierarchy::impl::demuxing_controller_iface_t
 Interface for demuxing_controller entity. More...
 
class  so_5::extra::msg_hierarchy::impl::basic_demuxing_controller_t< Root, Lock_Type >
 Partial implementation of demuxing_controller_iface. More...
 
struct  so_5::extra::msg_hierarchy::impl::controller_consumers_mixin_t
 Helper type to be used as mixin for actual demuxing controllers. More...
 
class  so_5::extra::msg_hierarchy::impl::multi_consumer_demuxing_controller_t< Root, Lock_Type >
 
struct  so_5::extra::msg_hierarchy::impl::single_dest_info_t
 Information about a single destination for a mutable message. More...
 
class  so_5::extra::msg_hierarchy::impl::single_consumer_demuxing_controller_t< Root, Lock_Type >
 
class  so_5::extra::msg_hierarchy::impl::basic_sending_mbox_t
 Basic implementation for all kinds of sending_mboxes. More...
 
class  so_5::extra::msg_hierarchy::impl::multi_consumer_sending_mbox_t< Root >
 Implementation of sending mbox for multi-producer/multi-consumer case. More...
 
class  so_5::extra::msg_hierarchy::impl::single_consumer_sending_mbox_t< Root >
 Implementation of sending mbox for multi-producer/single-consumer case. More...
 
class  so_5::extra::msg_hierarchy::demuxer_t< Root, Lock_Type >
 Demuxer for hierarchy of messages. More...
 
class  so_5::extra::msg_hierarchy::consumer_t< Root >
 A consumer interface for a demuxer object. More...
 

Namespaces

namespace  so_5
 Ranges for error codes of each submodules.
 
namespace  so_5::extra
 
namespace  so_5::extra::msg_hierarchy
 
namespace  so_5::extra::msg_hierarchy::errors
 
namespace  so_5::extra::msg_hierarchy::impl
 

Typedefs

using so_5::extra::msg_hierarchy::impl::upcaster_factory_t
 Type of pointer to factory function for making upcaster object.
 
using so_5::extra::msg_hierarchy::impl::consumer_numeric_id_t = std::uint_least64_t
 Type of numeric ID for consumer_id.
 
using so_5::extra::msg_hierarchy::impl::demuxing_controller_iface_shptr_t
 Alias for shared_ptr to demuxing_controller_iface.
 
template<typename Root , typename Lock_Type >
using so_5::extra::msg_hierarchy::impl::demuxing_controller_shptr_t
 Alias of shared_ptr for basic_demuxing_controller.
 

Variables

const int so_5::extra::msg_hierarchy::errors::rc_no_parent_upcaster
 An attempt to get parent upcaster but it isn't exists.
 
const int so_5::extra::msg_hierarchy::errors::rc_signal_cannot_be_delivered
 An attempt to deliver signal via msg_hierarchy-related mbox.
 
const int so_5::extra::msg_hierarchy::errors::rc_message_is_not_derived_from_root
 An attempt to deliver a message that type is not derived from root.
 
const int so_5::extra::msg_hierarchy::errors::rc_mpmc_demuxer_cannot_handler_mutable_msg
 An attempt to create receiving mbox for a mutable message.
 
const int so_5::extra::msg_hierarchy::errors::rc_more_than_one_subscriber_for_mutable_msg
 There are more than one subscriber for a mutable message.
 
constexpr consumer_numeric_id_t so_5::extra::msg_hierarchy::impl::invalid_consumer_id { 0 }
 Special value that means that a consumer_id is not valid.
 
constexpr ::so_5::mbox_type_t so_5::extra::msg_hierarchy::multi_consumer
 Indicator that a demuxer with Multi-Producer/Multi-Consumer mboxes has to be created.
 
constexpr ::so_5::mbox_type_t so_5::extra::msg_hierarchy::single_consumer
 Indicator that a demuxer with Multi-Producer/Single-Consumer mboxes has to be created.
 

Detailed Description

Support for hierarchy of message types.

Since
v.1.6.2

Definition in file pub.hpp.