The AsyncActionNode a different thread where the action will be executed. More...
#include <action_node.h>
Public Member Functions | |
AsyncActionNode (const std::string &name, const NodeParameters ¶meters=NodeParameters()) | |
virtual NodeStatus | executeTick () override final |
The method that will be executed to invoke tick(); and setStatus();. | |
void | stopAndJoinThread () |
virtual | ~AsyncActionNode () override |
Protected Member Functions | |
void | waitForTick () |
Protected Attributes | |
std::atomic< bool > | loop_ |
std::thread | thread_ |
TickEngine | tick_engine_ |
The AsyncActionNode a different thread where the action will be executed.
The user must implement the method asyncTick() instead of tick() and the method halt() as usual.
Remember, though, that the method asyncTick() must update the state to either RUNNING, SUCCESS or FAILURE, otherwise the execution of the Behavior Tree is blocked!
Definition at line 110 of file action_node.h.
BT::AsyncActionNode::AsyncActionNode | ( | const std::string & | name, |
const NodeParameters & | parameters = NodeParameters() |
||
) |
Definition at line 65 of file action_node.cpp.
BT::AsyncActionNode::~AsyncActionNode | ( | ) | [override, virtual] |
Definition at line 71 of file action_node.cpp.
NodeStatus BT::AsyncActionNode::executeTick | ( | ) | [override, virtual] |
The method that will be executed to invoke tick(); and setStatus();.
Reimplemented from BT::ActionNodeBase.
Definition at line 95 of file action_node.cpp.
Definition at line 110 of file action_node.cpp.
void BT::AsyncActionNode::waitForTick | ( | ) | [protected] |
Definition at line 79 of file action_node.cpp.
std::atomic<bool> BT::AsyncActionNode::loop_ [protected] |
Definition at line 134 of file action_node.h.
std::thread BT::AsyncActionNode::thread_ [protected] |
Definition at line 128 of file action_node.h.
TickEngine BT::AsyncActionNode::tick_engine_ [protected] |
Definition at line 132 of file action_node.h.