24#include <rclcpp/rclcpp.hpp>
29namespace client_behaviors
57 template <
typename TOrthogonal,
typename TBehavior,
typename... Args>
60 std::function<std::shared_ptr<smacc2::SmaccAsyncClientBehavior>()> delayedCBFactoryFn =
64 getLogger(),
"[CbSequence] then creating new sub behavior %s ",
65 demangleSymbol<TBehavior>().c_str());
66 auto createdBh = std::shared_ptr<TBehavior>(
new TBehavior(args...));
69 createdBh->template onOrthogonalAllocation<TOrthogonal, TBehavior>();
84 std::list<std::function<std::shared_ptr<smacc2::SmaccAsyncClientBehavior>()>>
sequenceNodes_;
85 boost::signals2::connection
conn_;
88 std::shared_ptr<smacc2::SmaccAsyncClientBehavior>
bh_;
ISmaccState * getCurrentState()
virtual rclcpp::Logger getLogger() const
TOrthogonal * getOrthogonal()
CbSequence * then(Args &&... args)
void recursiveConsumeNext()
std::atomic< int > consume_
boost::signals2::connection conn_
boost::signals2::connection conn2_
std::list< std::function< std::shared_ptr< smacc2::SmaccAsyncClientBehavior >()> > sequenceNodes_
std::shared_ptr< smacc2::SmaccAsyncClientBehavior > bh_