Boost logo

Boost :

Subject: [boost] [MSM] feature request stop(const event& event_)
From: Richard Szabo (sz.richard_at_[hidden])
Date: 2011-04-01 03:55:53


Hi Christophe and all

Now I have to put some effort to residing out code using MSM because
one of our module where we use MSM has reached it's limits and we
won't be able to compile it any more with VC9 32 bit compiler.
In our implementation we have several sub state machines (around 20
per main state machine instance at the moment) ( nested in 4 level
deep) and over time as we extend the functionality we introduce new
sub state machines which are covering new functionality ...

We now can not add any more new sub state machines because we can not
compile any more :(.

So I have decided to split the big state machines with a lot of subs
state machines to stand alone small state machine instances and use
our dispatching framework to dispatch events between them. This way I
will get small compile units.

I'm managed to complete a job apart form one problem I have now.
I'm not able to generally trigger the exit functions on the current
active states of a state machine when it is finished it's execution
like when a sub state machine exists to the outer state machine.

Is it possible to implement something like stop method on the back end
which would call exit on each region current state and than an exit of
the state machine whit an event passed as an argument. ?

this would help me a lot and it would be similar to the start.

other minor thing is it possible to make public this version of start
methode in the back_end ?

    template <class Event>
    void start(Event const& incomingEvent)

Br.
Richard


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