OGLplus  (0.59.0) a C++ wrapper for rendering APIs

eagine::msgbus::service_composition< Base > Class Template Reference

Helper mixin class for message bus services composed of several parts. More...

#include <eagine/message_bus/service.hpp>

Public Member Functions

 service_composition (endpoint &bus)
 Construction from a reference to an endpoint.
 
 service_composition (service_composition &&that)
 Move constructible.
 
 service_composition (const service_composition &)=delete
 Not copy constructible.
 
auto operator= (service_composition &&)=delete
 Not move assignable.
 
auto operator= (const service_composition &)=delete
 Not copy assignable.
 
auto add_connection (std::unique_ptr< connection > conn) -> bool final
 Adds a connection to the associated endpoint.
 
auto update_and_process_all () -> bool final
 Updates the associated endpoint and processes all incoming messages.
 
- Public Member Functions inherited from eagine::msgbus::subscriber
 subscriber (endpoint &bus) noexcept
 Construction from a reference to endpoint.
 
template<typename Class , bool(Class::*)(const message_context &, stored_message &) Method>
void add_method (Class *instance, message_id msg_id, member_function_constant< bool(Class::*)(const message_context &, stored_message &), Method > method)
 Adds a handler for messages with the specified message id.
 
template<typename Class , bool(Class::*)(const message_context &, stored_message &) Method>
void add_method (Class *instance, message_handler_map< member_function_constant< bool(Class::*)(const message_context &, stored_message &), Method >> msg_map) noexcept
 Adds a handler for messages with the specified message id.
 
template<typename Class , bool(Class::*)(const message_context &, stored_message &) Method>
void add_method (std::tuple< Class *, message_handler_map< member_function_constant< bool(Class::*)(const message_context &, stored_message &), Method >>> imm) noexcept
 Adds a handler for messages with the specified message id.
 
template<typename Class , bool(Class::*)(const message_context &, stored_message &) Method, identifier_t ClassId, identifier_t MethodId>
void add_method (Class *instance, static_message_handler_map< static_message_id< ClassId, MethodId >, member_function_constant< bool(Class::*)(const message_context &, stored_message &), Method >> msg_map) noexcept
 Adds a handler for messages with the specified message id.
 
auto process_one () -> bool
 Handles (and removes) one of poending received messages. More...
 
auto process_all () -> span_size_t
 Handles (and removes) all poending received messages. More...
 
void announce_subscriptions () const
 Sends messages to the bus saying which messages this can handle. More...
 
void allow_subscriptions () const
 Sends messages to the router saying which messages should be forwarded. More...
 
void retract_subscriptions () const noexcept
 Sends messages to the bus saying which messages this cannot handle. More...
 
void respond_to_subscription_query (identifier_t source_id) const noexcept
 Sends messages responding to a subscription query. More...
 
void respond_to_subscription_query (identifier_t source_id, message_id sub_msg) const noexcept
 Sends messages responding to a subscription query. More...
 
- Public Member Functions inherited from eagine::interface< subscriber >
constexpr interface (const interface &)=delete
 Not copyable.
 
auto operator= (interface &&)=delete
 Not move assignable.
 
auto operator= (const interface &)=delete
 Not copy assignable.
 
- Public Member Functions inherited from eagine::msgbus::subscriber_base
 operator bool () noexcept
 Tests if this subscribes has an associated endpoint and is usable.
 
auto bus () noexcept -> auto &
 Returns a reference to the associated endpoint. More...
 
auto bus () const noexcept -> auto &
 Returns a const reference to the associated endpoint. More...
 
auto update () const noexcept -> bool
 Updates the internal endpoint state (should be called repeatedly).
 
auto verify_bits (const stored_message &message) noexcept -> verification_bits
 Uses the associated endpoint to verify the specified message.
 
void query_subscriptions_of (identifier_t target_id)
 Queries the subscriptions of the remote endpoint with the specified id. More...
 
void query_subscribers_of (message_id sub_msg)
 Queries remote nodes subscribing to the specified message. More...
 
 subscriber_base (const subscriber_base &)=delete
 Not copy assignable.
 
auto operator= (subscriber_base &&)=delete
 Not move assignable.
 
auto operator= (const subscriber_base &)=delete
 Not copy constructible.
 
- Public Member Functions inherited from eagine::interface< connection_user >
constexpr interface (const interface &)=delete
 Not copyable.
 
auto operator= (interface &&)=delete
 Not move assignable.
 
auto operator= (const interface &)=delete
 Not copy assignable.
 
- Public Member Functions inherited from eagine::interface< service_interface >
constexpr interface (const interface &)=delete
 Not copyable.
 
auto operator= (interface &&)=delete
 Not move assignable.
 
auto operator= (const interface &)=delete
 Not copy assignable.
 

Additional Inherited Members

- Public Types inherited from eagine::msgbus::subscriber
using method_handler = callable_ref< bool(const message_context &, stored_message &)>
 Alias for method/message handler callable reference.
 
- Protected Member Functions inherited from eagine::interface< subscriber >
constexpr interface () noexcept=default
 Default constructible by derived.
 
constexpr interface (interface &&) noexcept=default
 Move constructible by derived.
 
- Protected Member Functions inherited from eagine::interface< connection_user >
constexpr interface () noexcept=default
 Default constructible by derived.
 
constexpr interface (interface &&) noexcept=default
 Move constructible by derived.
 
- Protected Member Functions inherited from eagine::interface< service_interface >
constexpr interface () noexcept=default
 Default constructible by derived.
 
constexpr interface (interface &&) noexcept=default
 Move constructible by derived.
 

Detailed Description

template<typename Base = subscriber>
class eagine::msgbus::service_composition< Base >

Helper mixin class for message bus services composed of several parts.


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

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).