Go to the documentation of this file.
14 #ifndef BEHAVIORTREECORE_ACTIONNODE_H
15 #define BEHAVIORTREECORE_ACTIONNODE_H
62 virtual void halt() override final
123 return halt_requested_.load();
129 virtual
void halt() override;
132 std::exception_ptr exptr_;
133 std::atomic_bool halt_requested_;
134 std::future<
void> thread_handle_;
163 void halt() override final;
174 virtual
void onHalted() = 0;
177 #ifndef BT_NO_COROUTINES
193 void setStatusRunningAndYield();
209 void halt()
override;
213 std::unique_ptr<Pimpl>
_p;
SyncActionNode(const std::string &name, const NodeConfiguration &config)
NodeType
Enumerates the possible types of nodes.
static pthread_mutex_t mutex
virtual NodeType type() const override final
~SyncActionNode() override=default
The AsyncActionNode uses a different thread, where the action will be executed.
Abstract base class for Behavior Tree Nodes.
~SimpleActionNode() override=default
bool isHaltRequested() const
const NodeConfiguration & config() const
StatefulActionNode(const std::string &name, const NodeConfiguration &config)
std::function< NodeStatus(TreeNode &)> TickFunctor
virtual NodeStatus executeTick() override
throws if the derived class return RUNNING.
~ActionNodeBase() override=default
ActionNodeBase(const std::string &name, const NodeConfiguration &config)
TickFunctor tick_functor_
SimpleActionNode(const std::string &name, TickFunctor tick_functor, const NodeConfiguration &config)
virtual NodeStatus tick() override final
Method to be implemented by the user.
const std::string & name() const
Name of the instance, not the type.
The ActionNodeBase is the base class to use to create any kind of action. A particular derived class ...
std::unique_ptr< Pimpl > _p
The SimpleActionNode provides an easy to use SyncActionNode. The user should simply provide a callbac...
virtual void halt() override final
You don't need to override this.
AsyncActionNode(const std::string &name, const NodeConfiguration &config)
The SyncActionNode is an ActionNode that explicitly prevents the status RUNNING and doesn't require a...
The CoroActionNode class is an a good candidate for asynchronous actions which need to communicate wi...
The ActionNode is the prefered way to implement asynchronous Actions. It is actually easier to use co...
behaviortree_cpp_v3
Author(s): Michele Colledanchise, Davide Faconti
autogenerated on Wed Jun 26 2024 02:51:19