9#include "rotor/supervisor.h"
10#include "rotor/thread/export.h"
11#include "system_context_thread.h"
namespace for rotor core messages (which just transform payloads)
Definition messages.hpp:317
namespace for pure thread backend (supervisor) for rotor
Definition thread.hpp:19
Basic namespace for all rotor functionalities.
Definition rotor.hpp:21
intrusive_ptr_t< message_base_t > message_ptr_t
intrusive pointer for message
Definition message.h:118
std::size_t request_id_t
timer identifier type in the scope of the actor
Definition forward.hpp:34
continue handler invocation (used for intercepting)
Definition handler.h:175
base supervisor config, which holds shutdown timeout value
Definition supervisor_config.h:23
supervisor_t(supervisor_config_t &config)
constructs new supervisor with optional parent supervisor
void shutdown() noexcept override
thread-safe version of do_shutdown, i.e. send shutdown request let it be processed by the supervisor
void update_time() noexcept
updates timer and fires timer handlers, which have been expired
void start() noexcept override
thread-safe version of do_process
void do_cancel_timer(request_id_t timer_id) noexcept override
cancels timer (to be implemented in descendants)
void do_start_timer(const pt::time_duration &interval, timer_handler_base_t &handler) noexcept override
starts non-recurring timer (to be implemented in descendants)
void enqueue(message_ptr_t message) noexcept override
enqueues messages thread safe way and triggers processing
supervisor_thread_t(supervisor_config_t &cfg)
constructs new thread supervisor
Definition supervisor_thread.h:26
void intercept(message_ptr_t &message, const void *tag, const continuation_t &continuation) noexcept override
intercepts message delivery for the tagged handler
Base class for timer handler.
Definition timer_handler.hpp:17