| 21 | namespace { |
| 22 | |
| 23 | bool |
| 24 | process_envelope_when_handler_found( |
| 25 | const msg_type_and_handler_pair_t & handler, |
| 26 | message_ref_t & message ) |
| 27 | { |
| 28 | using namespace so_5::enveloped_msg::impl; |
| 29 | |
| 30 | bool result = false; |
| 31 | |
| 32 | // We don't expect exceptions here and can't restore after them. |
| 33 | so_5::details::invoke_noexcept_code( [&] { |
| 34 | auto & envelope = message_to_envelope( message ); |
| 35 | |
| 36 | mchain_demand_handler_invoker_t invoker{ handler }; |
| 37 | envelope.access_hook( |
| 38 | so_5::enveloped_msg::access_context_t::handler_found, |
| 39 | invoker ); |
| 40 | |
| 41 | result = invoker.was_handled(); |
| 42 | } ); |
| 43 | |
| 44 | return result; |
| 45 | } |
| 46 | |
| 47 | } /* namespace anonymous */ |
| 48 |
no test coverage detected