8 #include <so_5/rt/impl/h/st_env_infrastructure_reuse.hpp> 10 #include <so_5/h/stdcpp.hpp> 37 const ::asio::error_code & ec )
39 if( ec && ::asio::error::operation_aborted != ec )
40 SO_5_THROW_EXCEPTION( rc_unexpected_error,
41 "Only asio::operation_aborted error code can be handled " 70 ::asio::io_context & io_svc,
72 const std::type_index & type_index,
74 const message_ref_t & msg,
94 std::chrono::steady_clock::duration pause )
96 intrusive_ptr_t< singleshot_timer_holder_t > self{
this };
97 m_timer.expires_after( pause );
101 [self](
const ::asio::error_code & ec )
noexcept {
102 helpers::ensure_we_can_handle_this_timer_error_code( ec );
103 if( ::asio::error::operation_aborted == ec )
106 ::so_5::rt::impl::mbox_iface_for_timers_t{ self->m_mbox }
107 .deliver_message_from_timer(
141 ::asio::io_context & io_svc,
143 const std::type_index & type_index,
145 const message_ref_t & msg,
149 std::chrono::steady_clock::duration period )
168 std::chrono::steady_clock::duration pause )
170 intrusive_ptr_t< periodic_timer_holder_t > self{
this };
171 m_timer.expires_after( pause );
175 [self](
const ::asio::error_code & ec )
noexcept {
176 helpers::ensure_we_can_handle_this_timer_error_code( ec );
177 if( ::asio::error::operation_aborted == ec )
180 ::so_5::rt::impl::mbox_iface_for_timers_t{ self->m_mbox }
181 .deliver_message_from_timer(
184 self->schedule_from_now( self->m_period );
198 template<
typename Holder >
202 using holder_t = Holder;
206 holder_smart_ptr_t holder )
Ranges for error codes of each submodules.