12 #include <so_5_extra/enveloped_msg/errors.hpp> 14 #include <so_5/send_functions.hpp> 16 #include <so_5/optional.hpp> 44 class payload_holder_t
final 57 const char * context_name )
const 61 errors::rc_empty_payload_holder,
62 std::string(
"empty payload_holder can't be used for: " ) +
68 std::type_index msg_type,
69 message_ref_t message )
76 payload_holder_t &
operator=( payload_holder_t && ) =
default;
78 template<
typename Envelope,
typename... Args >
83 ensure_not_empty_object(
"envelope()" );
85 message_ref_t envelope{
86 std::make_unique< Envelope >(
88 std::forward<Args>(args)... )
91 payload_holder_t result{
102 template<
typename Target >
106 ensure_not_empty_object(
"send_to()" );
110 so_5::send_functions_details::arg_to_mbox( to )->
119 const so_5::mbox_t & to,
120 std::chrono::steady_clock::duration pause )
124 so_5::low_level_api::single_timer(
131 template<
typename Target >
135 std::chrono::steady_clock::duration pause )
137 return this->send_delayed_to(
138 so_5::send_functions_details::arg_to_mbox( to ),
145 const so_5::mbox_t & to,
146 std::chrono::steady_clock::duration pause,
147 std::chrono::steady_clock::duration period )
151 return so_5::low_level_api::schedule_timer(
159 template<
typename Target >
164 std::chrono::steady_clock::duration pause,
165 std::chrono::steady_clock::duration period )
167 return this->send_periodic_to(
168 so_5::send_functions_details::arg_to_mbox( to ),
255 template<
typename Message,
typename... Args >
Ranges for error codes of each submodules.