Boost logo

Boost :

Subject: Re: [boost] [msm] Passing constructor arguments to submachine
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2010-06-01 14:08:20

Hi Michael,

> As already explained in another thread, it is possible to pass constructor
> arguments to msm state machines (to the front end).
> Is it also possible to pass constructor arguments to submachines of a msm
> state machine?

Unfortunately, not yet. There was a proposal made during the review to
allow states (including submachines) to be cloned from an existing
one, but it is not implemented yet.

> Or is there an other way in order to configure the inner submachine by
> calling some member methods from the outer state machine or therelike?

You can call get_state<my_submachine&>() on the outer fsm (at best in
the entry behavior). For example:

struct Playing_ : public msm::front::state_machine_def<Playing_>
       template <class Event,class Fsm>
        void on_entry(Event const&,Fsm& fsm)
          fsm.get_state<my_submachine&>() .foo();


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