title: How to exchange data from/to boost MSM statemachine
body: <p>I am new on MSM, and I think it's a great tool especially the eUML front-end approach. However, after days' reading, I am still not quite sure how to exchange data between a MSM eUML defined statemachine and external world. Two possible ways in my mind are:</p>
  
  <ol>
  <li><p>Add attributes into the statemachine using "attributes_ &lt;&lt; Attr1", and then somehow access the Attr1 from outside world</p></li>
  <li><p>Use global variable, where fsm action functions store data and external code read the data</p></li>
  </ol>
  
  <p>I have not figured out any other better ways. Regarding method 1, I am not sure how to access Attr1 from outside. I suppose "fsm_(Attr1)" is only used by the fsm internal function or method to access the attributes. So is there a way to do things list "fsm.Attr1" for outsider to read the data?</p>
  
  <p>As to the method 2, obviously global variables are the thing we always try to avoid.</p>
  
  <p>Any suggestions are welcome!  </p>