9#include "rotor/supervisor.h"
10#include "rotor/fltk/export.h"
11#include "rotor/fltk/supervisor_config_fltk.h"
14#include <unordered_map>
53 template <typename T> auto &
access() noexcept;
77 using timers_map_t = std::unordered_map<request_id_t, timer_ptr_t>;
namespace for fltk adapters for rotor
Definition fltk.hpp:20
supervisor_config_builder_t< Supervisor > supervisor_config_fltk_builder_t
CRTP supervisor fltk config builder (just an alias for generic builder)
Definition supervisor_config_fltk.h:18
supervisor_config_t supervisor_config_fltk_t
alias for supervisor config
Definition supervisor_config_fltk.h:15
namespace for rotor core messages (which just transform payloads)
Definition messages.hpp:317
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
boost::intrusive_ptr< T > intrusive_ptr_t
alias for intrusive pointer
Definition arc.hpp:27
std::size_t request_id_t
timer identifier type in the scope of the actor
Definition forward.hpp:34
supervisor_t * supervisor
non-owning pointer to actor's execution / infrastructure context
Definition actor_base.h:455
supervisor_ptr_t sup
intrusive pointer to the supervisor
Definition supervisor_fltk.h:66
timer_t(supervisor_ptr_t supervisor, timer_handler_base_t *handler)
constructs timer from flt supervisor and timer handler
intrusive_ptr_t< supervisor_fltk_t > supervisor_ptr_t
alias for intrusive pointer for the fltk supervisor
Definition supervisor_fltk.h:60
timer_handler_base_t * handler
non-owning pointer to timer handler
Definition supervisor_fltk.h:69
timers_map_t timers_map
timer id to timer pointer mapping
Definition supervisor_fltk.h:83
supervisor_fltk_t(supervisor_config_fltk_t &config)
constructs new supervisor from supervisor config
void do_cancel_timer(request_id_t timer_id) noexcept override
cancels timer (to be implemented in descendants)
void enqueue(message_ptr_t message) noexcept override
enqueues messages thread safe way and triggers processing
supervisor_config_fltk_t config_t
injects an alias for supervisor_config_fltk_t
Definition supervisor_fltk.h:40
void start() noexcept override
thread-safe version of do_process
std::unique_ptr< timer_t > timer_ptr_t
unique pointer to timer
Definition supervisor_fltk.h:74
void shutdown() noexcept override
thread-safe version of do_shutdown, i.e. send shutdown request let it be processed by the supervisor
auto & access() noexcept
generic non-public fields accessor
std::unordered_map< request_id_t, timer_ptr_t > timers_map_t
timer id to timer pointer mapping type
Definition supervisor_fltk.h:77
supervisor_config_fltk_builder_t< Supervisor > config_builder_t
injects templated supervisor_config_fltk_builder_t
Definition supervisor_fltk.h:43
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)
supervisor_t(supervisor_config_t &config)
constructs new supervisor with optional parent supervisor
Base class for timer handler.
Definition timer_handler.hpp:17