message_future timed_sync_send_tuple(actor_ptr whom, const std::chrono::duration<Rep,Period>& rel_time, any_tuple what) { auto mf = sync_send_tuple(std::move(whom), std::move(what)); auto tmp = make_any_tuple(atom("TIMEOUT")); get_scheduler()->delayed_reply(self, rel_time, mf.id(), std::move(tmp)); return mf; }
message_future timed_sync_send_tuple(actor_destination dest, const util::duration& rtime, any_tuple what) { auto mf = sync_send_tuple(std::move(dest), std::move(what)); message_header hdr{self, self, mf.id()}; auto tmp = make_any_tuple(atom("TIMEOUT")); get_scheduler()->delayed_send(std::move(hdr), rtime, std::move(tmp)); return mf; }
inline message_future sync_send(actor_ptr whom, Ts&&... what) { static_assert(sizeof...(Ts) > 0, "no message to send"); return sync_send_tuple(std::move(whom), make_any_tuple(std::forward<Ts>(what)...)); }
response_handle_type sync_send(const actor& dest, Ts&&... what) { static_assert(sizeof...(Ts) > 0, "no message to send"); return sync_send_tuple(message_priority::normal, dest, make_message(std::forward<Ts>(what)...)); }
response_handle_type sync_send_tuple(const actor& dest, message what) { return sync_send_tuple(message_priority::normal, dest, std::move(what)); }
inline message_future sync_send(const actor_ptr& whom, Args&&... what) { static_assert(sizeof...(Args) > 0, "no message to send"); return sync_send_tuple(whom, make_any_tuple(std::forward<Args>(what)...)); }