28template <
typename EventType>
34template <
typename EventType>
40template <
typename TComponent>
46template <
typename TComponent>
70template <
typename TComponent>
75 if (!name.empty() &&
component.first.name != name)
continue;
95 std::shared_ptr<SmaccComponentType>
ret;
104 "Creating a new component of type %s smacc component is required by client '%s'. Creating a "
111 ret->initialize(
this);
120 getLogger(),
"%s resource is required. Found resource in cache.",
134 std::string(),
targs...);
137template <
typename TSmaccSignal,
typename T>
143template <
typename SmaccClientType>
ISmaccStateMachine * stateMachine_
ISmaccStateMachine * getStateMachine()
std::map< ComponentKey, std::shared_ptr< smacc2::ISmaccComponent > > components_
virtual std::string getName() const
SmaccComponentType * createNamedComponent(std::string name, TArgs... targs)
rclcpp::Logger getLogger()
SmaccComponentType * createComponent(TArgs... targs)
void connectSignal(TSmaccSignal &signal, void(T::*callback)(), T *object)
ISmaccOrthogonal * orthogonal_
void requiresClient(SmaccClientType *&storage)
TComponent * getComponent()
bool requiresClient(SmaccClientType *&storage)
boost::signals2::connection createSignalConnection(TSmaccSignal &signal, TMemberFunctionPrototype callback, TSmaccObjectType *object)
void postEvent(EventType *ev, EventLifeTime evlifetime=EventLifeTime::ABSOLUTE)