Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2008-08-06 14:18:33


Chris Knight wrote:
> On Wednesday 06 August 2008 12:03:27 pm Andrey Semashev wrote:
>> I don't see the connection between rtti/virtuals and event deferring.
>> Anyway, in case of Boost.FSM virtual functions are only used for enter
>> state handlers in case of run-time version of state switching. Type info
>> is used for convenience only - it provides default state names and
>> diagnostic information in case of exceptions.
>
> template< typename T > void on_process(T const&);
>
> void on_process_dynamic(base_event const& base)
> {
> base->some_virtual();
> // or
> m_events[base->id].some_non_virtual();
> }
>
> My only point was that with a little bit of help from the library,
> implementing dynamic/defferred event processing should be possible.

Sorry, I still don't get it. You already can pass events with virtual
functions and process them through base classes. The main problem with
deferred events is that there's nobody to call process(deferred_event)
of the FSM. Another problem is that you generally don't know the
complete FSM type in states or transitions, but this issue is solvable
with a change in the state and transition base classes.

Could you elaborate your point, please?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk