24#include <boost/optional.hpp>
37 virtual std::string
getName()
const;
45 template <
typename TOrthogonal,
typename TClient>
48 template <
typename EventType>
51 template <
typename EventType>
54 template <
typename TOrthogonal,
typename TSourceObject>
56 "Use onStateOrthogonalAllocation instead. onOrthogonalAllocation will be removed in future "
63 template <
typename TOrthogonal,
typename TSourceObject>
68 template <
typename TComponent>
70 TComponent *& requiredComponentStorage,
bool throwExceptionIfNotExist =
false);
72 template <
typename TComponent>
74 std::string name, TComponent *& requiredComponentStorage,
75 bool throwExceptionIfNotExist =
false);
77 template <
typename TClient>
80 template <
typename SmaccComponentType,
typename TOrthogonal,
typename TClient,
typename... TArgs>
83 template <
typename SmaccComponentType,
typename TOrthogonal,
typename TClient,
typename... TArgs>
86 rclcpp::Node::SharedPtr
getNode();
void requiresComponent(TComponent *&requiredComponentStorage, bool throwExceptionIfNotExist=false)
void onOrthogonalAllocation()
ISmaccStateMachine * getStateMachine()
void requiresClient(TClient *&requiredClientStorage)
virtual void onInitialize()
SmaccComponentType * createSiblingComponent(TArgs... targs)
SmaccComponentType * createSiblingNamedComponent(std::string name, TArgs... targs)
virtual std::string getName() const
void initialize(ISmaccClient *owner)
rclcpp::Logger getLogger() const
void onComponentInitialization()
ISmaccStateMachine * stateMachine_
rclcpp::Node::SharedPtr getNode()
virtual ~ISmaccComponent()
void onStateOrthogonalAllocation()
void setStateMachine(ISmaccStateMachine *stateMachine)