On Tue, Jun 24, 2008 at 1:37 AM, Felipe Magno de Almeida
On Mon, Jun 23, 2008 at 6:18 PM, Andreas Huber
wrote: "Felipe Magno de Almeida"
wrote in message news:a2b17b60806211502i447c22e1t9d552dd76b8972a1@mail.gmail.com...
[snip]
If someone wants to pass arguments to X, then they should transit to X, and X transit to Y IMHO.
Transiting to X could be semantically different from transiting to Y. In the diagram discussed so far it's not but looking at the transitions triggered by e3 and e4 in ...
http://i.cmpnet.com/embedded/gifs/9901/9901feat1fig4.gif
... you'll see an example where it is. Transiting to S0 leads to the entry of S0 and S0_1 while transiting to S0_2 leads to the entry of S0 and S0_2.
I understand. But if someone is trying to transit directly to an inner state, does he care about the local-state of the new outer state? This is not rhetorical actually, I'm a little inexperienced with developing state machines. So far I've writed a SMTP client with asio, and am creating a SMTP server. I have no other experience with state machines.
Actually, I have myself an use case for passing arguments to outer states.
I'm just throwing here a suggestion:
How about having another way of transiting in this case?
cascate_transit<state1>(inner_arg1, inner_arg2)
.outer<state2>(middle_arg1, middle_arg2)
.outer<state3>(outer_arg1, middle_arg2);
template