Boost logo

Boost :

Subject: Re: [boost] [msm]entry point pseudo states and events (Re: [msm]orthogonal region and event consume)
From: Christophe Henry (christophe.j.henry_at_[hidden])
Date: 2012-06-01 15:17:13


Hi Takatoshi,

>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

Ah yes, there is even some enable_if! Now this looks like C++ ;-)

>It works perfectly.

Good! :)

>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.

And can be used in every context, not just with submachines. Furthermore,
the mechanism is easily extendable to be used with another any than
Boost.Any (like, say, TypeErasure).
Looks like our discussion was useful :)

>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.

Yes you got it. A completion event happens immediately, without a call to
process_event. A Kleene is an event which matches any event. So, without a
call to process_event, nothing happens.
I named it kleene so that people familiar with regex see more easily what it
is.

>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.
>http://redboltz.wikidot.com/boost-msm-guide

Ah yes, I saw it some time ago, but now it's much more complete. Do you mind
if I point to it in the doc?
Do you plan to do the same with eUML?

Regards,
Christophe


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