]> rtime.felk.cvut.cz Git - boost-statechart-viewer.git/commitdiff
Add support for defering events as custom reaction.
authorPetr Silhavik <silhavik.p@gmail.com>
Tue, 9 Apr 2013 17:33:41 +0000 (19:33 +0200)
committerPetr Silhavik <silhavik.p@gmail.com>
Tue, 9 Apr 2013 17:33:41 +0000 (19:33 +0200)
src/visualizer.cpp

index 4bcd68ece2111752e9b9016a5b3bb63508f943a8..f470d3d89ee0da0ff7e42c2d32f03074b7143a1c 100644 (file)
@@ -263,7 +263,13 @@ public:
        : model(model), SrcState(SrcState), EventType(EventType) {}
 
     bool VisitMemberExpr(MemberExpr *E) {
-       if (E->getMemberNameInfo().getAsString() != "transit")
+       if (E->getMemberNameInfo().getAsString() == "defer_event") {
+               CXXRecordDecl *Event = EventType->getAsCXXRecordDecl();
+
+               Model::State *s = model.findState(SrcState->getName());
+               assert(s);
+               s->addDeferredEvent(Event->getName());
+       } else if (E->getMemberNameInfo().getAsString() != "transit")
            return true;
        if (E->hasExplicitTemplateArgs()) {
            const Type *DstStateType = E->getExplicitTemplateArgs()[0].getArgument().getAsType().getTypePtr();