Subject: Re: [boost] [msm] nested pseudo exits with same event ending up in no trans in the most outer state machine.
From: Richard Szabo (sz.richard_at_[hidden])
Date: 2010-07-19 13:55:54
Hi again Christophe
If only composite state machines can not be derived classes of
msm:backend than this is fine because I had only one place till now
which I have changed already.
And if there is no other side effects. We can live with it.
On 19 July 2010 19:34, Richard Szabo <sz.richard_at_[hidden]> wrote:
> Hi Christophe
> but In our design We actually do thinks in the constructor of the back end.
> and We use multiple inheritance as well where derived is inherited
> from msm:backend and some other base classes to couple MSM with our
> existing message dispatching FW and call process_event.
> Is it not allowed to use derived classes as backends ?.
> I was not a ware of it. Is it mentioned in the documentation ?
> It gives me a lot headache to change our design now ... :(. we have
> spent now about 2 man month altogether to implement base classes
> around msm now if this is a case I have to change all of it.
> is there a way to allow such a implementation ?.
> On 19 July 2010 11:28, Christophe Henry
> <christophe.j.henry_at_[hidden]> wrote:
>>>I have run in to the following problem :
>>>if I have 3 state machines where 1st has a composite state which has
>>>one more composite state than the most inner one enters to a pseudo
>>>exit state which sends finish event.
>>>The middle one has a transaction from the most inner pseudo exit with
>>>even finish to a pseudo exit middle state which sends finish again.
>>>The most outer state machine has a transition from the middle pseudo
>>>exit with event finish to a internal state.
>>>when the most inner pseudo state sends event finish it ends in a NO
>>>transition on the most outer state machine instead of triggering the
>>>transition in the middle state machine.
>> Hi Richard,
>> Remove these lines:
>> //struct test1 : msm::back::state_machine< test1Sm >
>> //typedef test1 Test1Player;
>> And replace them with:
>> typedef msm::back::state_machine< test1Sm > Test1Player;
>> And it should work.
>> Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk