]> rtime.felk.cvut.cz Git - boost-statechart-viewer.git/commitdiff
Preliminary support for custom reactions
authorMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 29 Aug 2012 06:35:37 +0000 (08:35 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Wed, 29 Aug 2012 06:39:29 +0000 (08:39 +0200)
src/visualizer.cpp

index 0d8f64f5e200dda7636f1ce368163fcae86b1e72..0e4e74cbcc64e7b1ec7ba99a946fa936dd24160b 100644 (file)
@@ -277,6 +277,18 @@ public:
 
                Model::Transition *T = new Model::Transition(SrcState->getName(), DstState->getName(), Event->getName());
                model.transitions.push_back(T);
+           } else if (name == "boost::statechart::custom_reaction") {
+               const Type *EventType = TST->getArg(0).getAsType().getTypePtr();
+               CXXRecordDecl *Event = EventType->getAsCXXRecordDecl();
+
+               Model::Transition *T = new Model::Transition(SrcState->getName(), "\"???\"", Event->getName());
+               model.transitions.push_back(T);
+           } else if (name == "boost::statechart::deferral") {
+               const Type *EventType = TST->getArg(0).getAsType().getTypePtr();
+               CXXRecordDecl *Event = EventType->getAsCXXRecordDecl();
+
+               Model::Transition *T = new Model::Transition(SrcState->getName(), "\"??? deferral\"", Event->getName());
+               model.transitions.push_back(T);
            } else if (name == "boost::mpl::list") {
                for (TemplateSpecializationType::iterator Arg = TST->begin(), End = TST->end(); Arg != End; ++Arg)
                    HandleReaction(Arg->getAsType().getTypePtr(), Loc, SrcState);