Boost logo

Boost :

Subject: Re: [boost] [msm]entry point pseudo states and events (Re: [msm]orthogonal region and event consume)
From: Takatoshi Kondo (redboltz_at_[hidden])
Date: 2012-06-01 00:55:48

Hi Christophe,

Thank you for your effort and commit. I am really impressed at your
brilliant solution!
I modified my example using the new any supports.
See 41_FingerPrintExampleAnyEvent.cpp

It works perfectly.

As you mentioned, your solution not only improves the sub-machines'
reusability but also provides access to events.
This is something that I really want to.

Let me clarify my understanding.
msm::front::none is a completion_event. A transition that corresponds
to completion_event can be processed without trigger events.
Kleene event is not a completion_event. Therefore, it is not invoked
without trigger events, but any events are accepted as a trigger.
Furthermore, the trigger event is preserved as boost::any.

By the way, I'm writing the guideline for UML modelers. My goal is to
describe how to implement Each UML element into Boost.Msm.
Maybe I talked about it last year. And it is coming along some extent now.


On Fri, Jun 1, 2012 at 6:17 AM, Christophe Henry
<christophe.j.henry_at_[hidden]> wrote:
> Hi Takatoshi,
>> I thought a bit last night after our last discussion and I come to such a
>> transition in your first example:
>> ====>  msmf::Row < Entry1  , boost::any, State2_2  , ExecuteEntry,
>> msmf::none >
>> Not that the event now is boost::any. And it matches your Event1 of
>> course. This way you get the same effect as your none and I keep my event
>> data as I can any_cast (note to self, also plan to support Steven's new
>> pimped any. Name suggestion: boost::pimped_any :) ).
>> The added advantage is that this will apply to all of MSM's transitions,
>> not just pseudo entries.
> I just committed a version where this is implemented (trunk rev. 78785). You
> can play with it and see if it solves your problem. I'm pretty confident it
> will work, but I need to make more tests and update the doc (but it's
> getting late).
> For non-eUML front-ends, boost::any is now an acceptable event, for eUML I
> added an event named "kleene" behaving like a boost::any. With both, the
> original event is saved in the boost::any, which allows you some more
> entertaining guards or actions ;-)
> HTH,
> Christophe
> _______________________________________________
> Unsubscribe & other changes:

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