|
C++ YASMIN (Yet Another State MachINe)
|
Trampoline class to enable Python classes to inherit from C++ State. More...


Public Member Functions | |
| std::string | execute (yasmin::Blackboard::SharedPtr blackboard) override |
| Override execute() to call Python implementation. We wrap the C++ Blackboard in BlackboardPyWrapper before passing to Python. The GIL must be acquired before calling into Python. | |
| void | configure () override |
| Override configure() to call Python implementation if available. The GIL must be acquired before calling into Python. | |
| void | cancel_state () override |
| Override cancel_state() to call Python implementation if available. The GIL must be acquired before calling into Python. | |
| std::string | to_string () const override |
| Override to_string(). The GIL must be acquired before calling into Python. | |
| State (const Outcomes &outcomes) | |
| Shared pointer type for State. | |
| Public Member Functions inherited from yasmin::State | |
| State (const Outcomes &outcomes) | |
| Shared pointer type for State. | |
| virtual | ~State () |
| Virtual destructor. | |
| Blackboard::SharedPtr | get_parameters_blackboard () const |
| Gets the private parameter blackboard of this state. | |
| bool | is_idle () const noexcept |
| Checks if the state is idle. | |
| bool | is_running () const noexcept |
| Checks if the state is currently running. | |
| bool | is_canceled () const noexcept |
| Checks if the state has been canceled. | |
| bool | is_completed () const noexcept |
| Checks if the state has completed execution. | |
| std::string | operator() (Blackboard::SharedPtr blackboard) |
| Executes the state and returns the outcome. | |
| Outcomes const & | get_outcomes () const noexcept |
| Gets the set of possible outcomes for this state. | |
| void | set_description (const std::string &description) |
| Sets the description for this state. | |
| const std::string & | get_description () const |
| Gets the description of this state. | |
| void | set_outcome_description (const std::string &outcome, const std::string &description) |
| Sets a human-readable description for an outcome. | |
| const std::string & | get_outcome_description (const std::string &outcome) const |
| Gets the human-readable description for an outcome. | |
| const std::unordered_map< std::string, std::string > & | get_outcome_descriptions () const |
| Gets all outcome descriptions. | |
| void | add_input_key (const BlackboardKeyInfo &key_info) |
| Adds an input key to the state's metadata. | |
| void | add_input_key (const std::string &key_name) |
| Adds an input key with a name only. | |
| void | add_input_key (const std::string &key_name, const std::string &description) |
| Adds an input key with a name and description. | |
| template<typename T> | |
| void | add_input_key (const std::string &key_name, const std::string &description, T default_value) |
| Adds an input key with a name, default value and description. | |
| void | add_output_key (const BlackboardKeyInfo &key_info) |
| Adds an output key to the state's metadata. | |
| void | add_output_key (const std::string &key_name) |
| Adds an output key with a name only. | |
| void | add_output_key (const std::string &key_name, const std::string &description) |
| Adds an output key with a name and description. | |
| const std::vector< BlackboardKeyInfo > & | get_input_keys () const |
| Gets the input keys metadata. | |
| const std::vector< BlackboardKeyInfo > & | get_output_keys () const |
| Gets the output keys metadata. | |
| void | declare_parameter (const BlackboardKeyInfo ¶meter_info) |
| Declares a parameter in the state metadata. | |
| void | declare_parameter (const std::string ¶meter_name) |
| Declares a parameter with a name only. | |
| void | declare_parameter (const std::string ¶meter_name, const std::string &description) |
| Declares a parameter with a name and description. | |
| template<typename T> | |
| void | declare_parameter (const std::string ¶meter_name, const std::string &description, T default_value) |
| Declares a parameter with a name, description, and default value. | |
| bool | has_parameter (const std::string ¶meter_name) const |
| Checks if a parameter exists in the state-local parameter storage. | |
| template<typename T> | |
| T | get_parameter (const std::string ¶meter_name) const |
| Gets a parameter from the state-local parameter storage. | |
| template<typename T> | |
| void | set_parameter (const std::string ¶meter_name, T value) |
| Sets a parameter in the state-local parameter storage. | |
| bool | is_parameter_declared (const std::string ¶meter_name) const |
| Checks whether a parameter was declared in the state metadata. | |
| void | copy_parameter_from (const State &source_state, const std::string &source_parameter_name, const std::string &target_parameter_name) |
| Copies a parameter value from another state. | |
| const std::vector< BlackboardKeyInfo > & | get_parameters () const |
| Gets the declared parameter metadata. | |
| const StateMetadata & | get_metadata () const |
| Gets the complete state metadata. | |
Additional Inherited Members | |
| Protected Attributes inherited from yasmin::State | |
| Outcomes | outcomes |
| The possible outcomes of this state. | |
Trampoline class to enable Python classes to inherit from C++ State.
This class allows Python code to override the virtual methods of the State class, particularly the execute() method, while maintaining C++ type safety and performance.
|
inlineoverridevirtual |
Override cancel_state() to call Python implementation if available. The GIL must be acquired before calling into Python.
Reimplemented from yasmin::State.
|
inlineoverridevirtual |
Override configure() to call Python implementation if available. The GIL must be acquired before calling into Python.
Reimplemented from yasmin::State.
|
inlineoverridevirtual |
Override execute() to call Python implementation. We wrap the C++ Blackboard in BlackboardPyWrapper before passing to Python. The GIL must be acquired before calling into Python.
Reimplemented from yasmin::State.
| State::State | ( | const Outcomes & | outcomes | ) |
|
inlineoverridevirtual |
Override to_string(). The GIL must be acquired before calling into Python.
Reimplemented from yasmin::State.