Boost logo

Boost :

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
> humm......
> 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 ?.
> Br.
> Richie
> On 19 July 2010 11:28, Christophe Henry
> <christophe.j.henry_at_[hidden]> wrote:
>>>Hi All
>>>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.
>> <snip>
>> 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.
>> Regards,
>> Christophe
>> _______________________________________________
>> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at