Reaction base class with reactor access. More...
#include <xronos/sdk/reaction.hh>
Public Member Functions | |
Reaction (ReactionProperties properties) | |
Constructor. | |
Public Member Functions inherited from xronos::sdk::BaseReaction | |
BaseReaction (ReactionProperties properties) | |
Constructor. | |
Public Member Functions inherited from xronos::sdk::Element | |
auto | name () const noexcept -> const std::string & |
Get the element's name. | |
auto | fqn () const noexcept -> const std::string & |
Get the element's fully qualified name. | |
auto | add_attribute (std::string_view key, const AttributeValue &value) noexcept -> bool |
Annotate an element with an attribute. | |
template<std::ranges::input_range R> requires requires(std::ranges::range_value_t<R> pair) { { pair.first } -> std::convertible_to<std::string_view>; { pair.second } -> std::convertible_to<AttributeValue>; } | |
auto | add_attributes (const R &range) noexcept -> bool |
Annotate an element with multiple attributes. | |
auto | add_attributes (std::initializer_list< std::pair< std::string_view, AttributeValue > > attributes) -> bool |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
virtual | ~Element ()=default |
Virtual destructor. |
Protected Member Functions | |
auto | self () noexcept -> R & |
Get a reference to the owning reactor. | |
Protected Member Functions inherited from xronos::sdk::BaseReaction | |
auto | context () noexcept -> ReactionContext |
Get a context object for constructing reaction triggers and effects Reaction effect classes.. |
Reaction base class with reactor access.
In addition to BaseReaction, this class provides fully-typed access to the owning reactor and all its state and elements.
R | Type of the owning reactor. This must be a subclass of Reactor. |
xronos::sdk::Reaction< R >::Reaction | ( | ReactionProperties | properties | ) |
Constructor.
Since ReactionProperties has no public constructor, this constructor cannot be invoked directly. Use the Reactor::add_reaction() factory method instead.
|
nodiscardprotectednoexcept |
Get a reference to the owning reactor.
The reactor reference can be used for referencing other elements of the reactor when declaring triggers and effects Reaction effect classes.. It can also be used in the reaction handler for accessing the reactor's state.