31 Aug 18:55
Re: [review] FSM Second Call for Reviews
Andrey Semashev <andrey.semashev <at> gmail.com>
2008-08-31 16:55:45 GMT
2008-08-31 16:55:45 GMT
On Sun, 2008-08-31 at 15:28 +0200, Thomas Klimpel wrote: > Andrey Semashev wrote: > > Not exactly. You don't have to override the transit handler unless you > > want to define some non-trivial transition logic. If you stick to the > > same degree of functionality that TMP provides (IOW, no runtime > > conditions for the transition to take place), then you can use the > > fsm::transition class as a direct replacement for the row template in > > the TMP approach. > > > > If you have to decide when and which state to transit to in runtime, > > then yes, you have to define your custom transition rule. > > But how can I specify the "transition action", if not by overriding the "transit" method? As I said, if you need some non-trivial (i.e. something more complex than a mere call to switch_to), you have to implement the transit handler. Otherwise, you don't have to do that and you get precisely what the TMP solution provides. > And even if I override the "transit" method, how should I handle the fact that the event will still be delivered to the target state? Process the event. Every event passed to the state machine must be processed in some way - either in one of the on_process handlers, or in the unexpected events handler. You cannot cancel the event delivery because the machine has to return something from the FSM's process method. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
RSS Feed