
At first, I was not sure it is correct or not that calling process_event recursively.
process_event() -> operator()() -> process_event()
But you pointed out it's no problem. I can use the msm mechanism flexibly!
It's not really recursive, the second process_event just gets queued until the first completes, but it's just an implementation detail.
I think that your euml functor is also useful outside of euml as DESL.
Right now no, because it can handle only 3 or 4 arguments. But this is going to change soon, I'm working on it.
The functor Not_ is suitable for "else". But if we have much more guards, We have to use Or_ functor like this. msme::Not_< msme::Or_< msme::Or_<Guard1, Guard2>, Guard3> >
Off the top of my head, how about the functor Else_ below? Else_ <Guard1, Guard2, Guard3, ... >
Do you mean a transition with some "if " as guard, followed by a transition with Else_? Hmmm this will be hard to get right but it's an idea. What I have is If_Else_<Condition,Action1,Action2> but only as guard of a single transition. Regards, Christophe