Class Reactor

Inheritance Relationships

Base Type

Class Documentation

class Reactor : public reactor::ReactorElement

Public Functions

Reactor(const std::string &name, Reactor *container)
Reactor(const std::string &name, Environment *environment)
~Reactor() override = default
inline auto actions() const noexcept -> const auto&
inline auto inputs() const noexcept -> const auto&
inline auto outputs() const noexcept -> const auto&
inline auto reactions() const noexcept -> const auto&
inline auto reactors() const noexcept -> const auto&
virtual void startup() final
virtual void shutdown() final
virtual void assemble() = 0
auto get_logical_time() const noexcept -> TimePoint
auto get_microstep() const noexcept -> mstep_t
auto get_tag() const noexcept -> Tag
auto get_elapsed_logical_time() const noexcept -> Duration
auto get_elapsed_physical_time() const noexcept -> Duration

Public Members

friend ReactorElement

Public Static Functions

static auto get_physical_time() noexcept -> TimePoint

Private Functions

void register_action(BaseAction *action)
void register_input(BasePort *port)
void register_output(BasePort *port)
void register_reaction(Reaction *reaction)
void register_reactor(Reactor *reactor)

Private Members

std::set<BaseAction*> actions_ = {}
std::set<BasePort*> inputs_ = {}
std::set<BasePort*> outputs_ = {}
std::set<Reaction*> reactions_ = {}
std::set<Reactor*> reactors_ = {}