13 ROS_INFO_STREAM(
"NOTIFY TRANSITION: " << transitionType->getFullName());
18 if (currstateinfo !=
nullptr)
21 for (
auto &transition : currstateinfo->transitions_)
23 std::string transitionCandidateName = transition.transitionTypeInfo->getFullName();
26 if (transitionType->getFullName() == transitionCandidateName)
34 ROS_ERROR_STREAM(
"Transition happened, from current state " << currstateinfo->getDemangledFullName() <<
" but there is not any transitioninfo match available to publish transition: " << transitionType->getFullName());
37 auto stateinfo = currstateinfo;
39 for (
auto &transition : currstateinfo->transitions_)
41 std::string transitionCandidateName = transition.transitionTypeInfo->getFullName();
42 ROS_ERROR_STREAM(
"- candidate transition: " << transitionCandidateName);
45 ROS_ERROR(
"Ancestors candidates: ");
47 std::list<const SmaccStateInfo *> ancestors;
48 stateinfo->getAncestors(ancestors);
50 for (
auto &ancestor : ancestors)
52 ROS_ERROR_STREAM(
" * Ancestor " << ancestor->getDemangledFullName() <<
":");
53 for (
auto &transition : ancestor->transitions_)
55 std::string transitionCandidateName = transition.transitionTypeInfo->getFullName();
56 ROS_ERROR_STREAM(
"- candidate transition: " << transitionCandidateName);
57 if (transitionType->getFullName() == transitionCandidateName)
66 ROS_ERROR_STREAM(
"Transition happened, but current state was not set. Transition candidates:");
void publishTransition(const SmaccTransitionInfo &transitionInfo)
virtual std::string getClassName()
virtual ISmaccStateMachine & getStateMachine()=0
void notifyTransitionFromTransitionTypeInfo(std::shared_ptr< smacc::introspection::TypeInfo > &transitionTypeInfo)
const smacc::introspection::SmaccStateInfo * stateInfo_
std::shared_ptr< TypeInfo > Ptr
std::string demangleSymbol()