Public Member Functions | Private Member Functions | Private Attributes | List of all members
BT::AsyncActionNode Class Reference

The AsyncActionNode uses a different thread where the action will be executed. More...

#include <action_node.h>

Inheritance diagram for BT::AsyncActionNode:
Inheritance graph
[legend]

Public Member Functions

 AsyncActionNode (const std::string &name, const NodeConfiguration &config)
 
virtual NodeStatus executeTick () overridefinal
 The method that should be used to invoke tick() and setStatus();. More...
 
void stopAndJoinThread ()
 
virtual ~AsyncActionNode () override
 
- Public Member Functions inherited from BT::ActionNodeBase
 ActionNodeBase (const std::string &name, const NodeConfiguration &config)
 
virtual NodeType type () const overridefinal
 
 ~ActionNodeBase () override=default
 
- Public Member Functions inherited from BT::LeafNode
 LeafNode (const std::string &name, const NodeConfiguration &config)
 
virtual ~LeafNode () override=default
 
- Public Member Functions inherited from BT::TreeNode
const NodeConfigurationconfig () const
 
template<typename T >
Result getInput (const std::string &key, T &destination) const
 
template<typename T >
Optional< T > getInput (const std::string &key) const
 
virtual void halt ()=0
 
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 setStatus (NodeStatus new_status)
 
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
 

Private Member Functions

void asyncThreadLoop ()
 
void notifyStart ()
 
void waitStart ()
 

Private Attributes

std::exception_ptr exptr_
 
std::atomic< bool > keep_thread_alive_
 
bool start_action_
 
std::mutex start_mutex_
 
std::condition_variable start_signal_
 
std::thread thread_
 

Additional Inherited Members

- Public Types inherited from BT::TreeNode
typedef std::shared_ptr< TreeNodePtr
 
using StatusChangeCallback = StatusChangeSignal::CallableFunction
 
using StatusChangeSignal = Signal< TimePoint, const TreeNode &, NodeStatus, NodeStatus >
 
using StatusChangeSubscriber = StatusChangeSignal::Subscriber
 
- Static Public Member Functions inherited from BT::TreeNode
static Optional< StringViewgetRemappedKey (StringView port_name, StringView remapping_value)
 
static bool isBlackboardPointer (StringView str)
 
static StringView stripBlackboardPointer (StringView str)
 
- Protected Member Functions inherited from BT::TreeNode
void modifyPortsRemapping (const PortsRemapping &new_remapping)
 
void setRegistrationID (StringView ID)
 
virtual BT::NodeStatus tick ()=0
 Method to be implemented by the user. More...
 

Detailed Description

The AsyncActionNode uses a different thread where the action will be executed.

The user must implement the methods tick() and halt().

Definition at line 105 of file action_node.h.

Constructor & Destructor Documentation

BT::AsyncActionNode::AsyncActionNode ( const std::string &  name,
const NodeConfiguration config 
)

Definition at line 54 of file action_node.cpp.

BT::AsyncActionNode::~AsyncActionNode ( )
overridevirtual

Definition at line 62 of file action_node.cpp.

Member Function Documentation

void BT::AsyncActionNode::asyncThreadLoop ( )
private

Definition at line 87 of file action_node.cpp.

NodeStatus BT::AsyncActionNode::executeTick ( )
finaloverridevirtual

The method that should be used to invoke tick() and setStatus();.

Reimplemented from BT::TreeNode.

Definition at line 112 of file action_node.cpp.

void BT::AsyncActionNode::notifyStart ( )
private

Definition at line 80 of file action_node.cpp.

void BT::AsyncActionNode::stopAndJoinThread ( )

Definition at line 129 of file action_node.cpp.

void BT::AsyncActionNode::waitStart ( )
private

Definition at line 70 of file action_node.cpp.

Member Data Documentation

std::exception_ptr BT::AsyncActionNode::exptr_
private

Definition at line 134 of file action_node.h.

std::atomic<bool> BT::AsyncActionNode::keep_thread_alive_
private

Definition at line 126 of file action_node.h.

bool BT::AsyncActionNode::start_action_
private

Definition at line 128 of file action_node.h.

std::mutex BT::AsyncActionNode::start_mutex_
private

Definition at line 130 of file action_node.h.

std::condition_variable BT::AsyncActionNode::start_signal_
private

Definition at line 132 of file action_node.h.

std::thread BT::AsyncActionNode::thread_
private

Definition at line 136 of file action_node.h.


The documentation for this class was generated from the following files:


behaviortree_cpp
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Sat Jun 8 2019 18:04:05