The CoroActionNode class is an a good candidate for asynchronous actions which need to communicate with an external service using an asynch request/reply interface. More...
#include <action_node.h>
Classes | |
struct | Pimpl |
Public Member Functions | |
CoroActionNode (const std::string &name, const NodeConfiguration &config) | |
virtual NodeStatus | executeTick () override final |
The method that should be used to invoke tick() and setStatus();. More... | |
void | halt () override |
void | setStatusRunningAndYield () |
Use this method to return RUNNING and temporary "pause" the Action. More... | |
virtual | ~CoroActionNode () override |
![]() | |
ActionNodeBase (const std::string &name, const NodeConfiguration &config) | |
virtual NodeType | type () const override final |
~ActionNodeBase () override=default | |
![]() | |
LeafNode (const std::string &name, const NodeConfiguration &config) | |
virtual | ~LeafNode () override=default |
![]() | |
const NodeConfiguration & | config () const |
void | emitStateChanged () |
template<typename T > | |
Result | getInput (const std::string &key, T &destination) const |
template<typename T > | |
Optional< T > | getInput (const std::string &key) const |
StringView | getRawPortValue (const std::string &key) const |
bool | isHalted () const |
const std::string & | name () const |
Name of the instance, not the type. More... | |
const std::string & | registrationName () const |
registrationName is the ID used by BehaviorTreeFactory to create an instance. More... | |
template<typename T > | |
Result | setOutput (const std::string &key, const T &value) |
void | setPostTickOverrideFunction (PostTickOverrideCallback callback) |
void | setPreTickOverrideFunction (PreTickOverrideCallback callback) |
NodeStatus | status () const |
StatusChangeSubscriber | subscribeToStatusChange (StatusChangeCallback callback) |
subscribeToStatusChange is used to attach a callback to a status change. When StatusChangeSubscriber goes out of scope (it is a shared_ptr) the callback is unsubscribed automatically. More... | |
TreeNode (std::string name, NodeConfiguration config) | |
TreeNode main constructor. More... | |
uint16_t | UID () const |
BT::NodeStatus | waitValidStatus () |
virtual | ~TreeNode ()=default |
Protected Attributes | |
std::unique_ptr< Pimpl > | _p |
The CoroActionNode class is an a good candidate for asynchronous actions which need to communicate with an external service using an asynch request/reply interface.
It is up to the user to decide when to suspend execution of the Action and resume the parent node, invoking the method setStatusRunningAndYield().
Definition at line 186 of file action_node.h.
CoroActionNode::CoroActionNode | ( | const std::string & | name, |
const NodeConfiguration & | config | ||
) |
Definition at line 84 of file action_node.cpp.
|
overridevirtual |
Definition at line 93 of file action_node.cpp.
|
finaloverridevirtual |
The method that should be used to invoke tick() and setStatus();.
Reimplemented from BT::TreeNode.
Definition at line 102 of file action_node.cpp.
|
overridevirtual |
You may want to override this method. But still, remember to call this implementation too.
Example:
void MyAction::halt() { // do your stuff here CoroActionNode::halt(); }
Implements BT::TreeNode.
Reimplemented in SimpleCoroAction.
Definition at line 118 of file action_node.cpp.
void CoroActionNode::setStatusRunningAndYield | ( | ) |
Use this method to return RUNNING and temporary "pause" the Action.
Definition at line 96 of file action_node.cpp.
|
protected |
Definition at line 212 of file action_node.h.