11 #include <so_5/version.hpp> 13 #include <so_5_extra/revocable_msg/pub.hpp> 15 #include <so_5_extra/error_ranges.hpp> 17 #include <so_5/timers.hpp> 18 #include <so_5/enveloped_msg.hpp> 19 #include <so_5/send_functions.hpp> 106 class timer_id_t
final 121 ::so_5::intrusive_ptr_t< details::envelope_t > envelope,
122 ::so_5::timer_id_t actual_id )
140 timer_id_t &
operator=(
const timer_id_t & ) =
delete;
143 timer_id_t( timer_id_t && )
noexcept =
default;
144 timer_id_t &
operator=( timer_id_t && )
noexcept =
default;
147 swap( timer_id_t & a, timer_id_t & b )
noexcept 149 a.m_envelope.swap( b.m_envelope );
150 a.m_actual_id.swap( b.m_actual_id );
182 return m_actual_id.is_active();
195 m_envelope->revoke();
196 m_actual_id.release();
217 template<
typename... Args >
221 return ::so_5::extra::revocable_timer::timer_id_t{
222 std::forward<Args>(args)... };
232 const so_5::mbox_t & to,
233 const std::type_index & msg_type,
234 message_ref_t payload,
235 std::chrono::steady_clock::duration pause,
236 std::chrono::steady_clock::duration period )
238 using envelope_t = ::so_5::extra::revocable_timer::details::envelope_t;
240 ::so_5::intrusive_ptr_t< envelope_t > envelope{
241 std::make_unique< envelope_t >( std::move(payload) ) };
243 auto actual_id = ::so_5::low_level_api::schedule_timer(
250 return timer_id_maker_t::make(
251 std::move(envelope), std::move(actual_id) );
258 template<
class Message,
bool Is_Signal >
261 template<
typename... Args >
264 const ::so_5::mbox_t & to,
265 std::chrono::steady_clock::duration pause,
266 std::chrono::steady_clock::duration period,
285 template<
class Message >
293 const so_5::mbox_t & to,
294 std::chrono::steady_clock::duration pause,
295 std::chrono::steady_clock::duration period )
306 template<
class Message >
376 template<
typename Message,
typename Target,
typename... Args >
382 std::chrono::steady_clock::duration pause,
384 std::chrono::steady_clock::duration period,
442 template<
typename Message >
444 typename std::enable_if<
498 template<
typename Message >
500 typename std::enable_if<
501 ::so_5::is_signal< Message >::value,
static so_5::extra::revocable_timer::timer_id_t send_periodic(const so_5::mbox_t &to, std::chrono::steady_clock::duration pause, std::chrono::steady_clock::duration period)
Ranges for error codes of each submodules.
static ::so_5::extra::revocable_timer::timer_id_t send_periodic(const ::so_5::mbox_t &to, std::chrono::steady_clock::duration pause, std::chrono::steady_clock::duration period, Args &&... args)