SObjectizer  5.5
Static Public Member Functions | List of all members
so_5::details::handlers_bunch_basics_t Struct Reference

Basic part of handlers_bunch implementation. More...

#include <handler_makers.hpp>

Inheritance diagram for so_5::details::handlers_bunch_basics_t:
so_5::details::handlers_bunch_t< Handlers_Count > so_5::details::handlers_bunch_t< N >

Static Public Member Functions

static void prepare_handlers (msg_type_and_handler_pair_t *left, msg_type_and_handler_pair_t *right)
 Preparation of message handlers vector. More...
 
static SO_5_FUNC bool find_and_use_handler (const msg_type_and_handler_pair_t *left, const msg_type_and_handler_pair_t *right, const std::type_index &msg_type, message_ref_t &message, invocation_type_t invocation)
 Find and exec message handler. More...
 

Detailed Description

Basic part of handlers_bunch implementation.

Note
This part is not depends on template parameters.
Since
v.5.5.13

Member Function Documentation

◆ find_and_use_handler()

SO_5_FUNC bool so_5::details::handlers_bunch_basics_t::find_and_use_handler ( const msg_type_and_handler_pair_t left,
const msg_type_and_handler_pair_t right,
const std::type_index &  msg_type,
message_ref_t message,
invocation_type_t  invocation 
)
static

Find and exec message handler.

Message handlers vector to be used in handling of message is defined by range [left, right).

Note
The message handler vector [left, right) must be previously prepared by prepare_handlers().
Return values
trueif handler has been found
falseif handler has not been found.

◆ prepare_handlers()

static void so_5::details::handlers_bunch_basics_t::prepare_handlers ( msg_type_and_handler_pair_t left,
msg_type_and_handler_pair_t right 
)
inlinestatic

Preparation of message handlers vector.

Message handlers vector must be ordered by msg_type. And must not contain two or more handlers for the same msg_type.

Vector to be processed is defined by range [left, right).

Exceptions
so_5::exception_tif there are several handlers for the same message type.

The documentation for this struct was generated from the following files: