如果我向事件添加属性,我知道我可以像使用函数一样使用事件名称......
BOOST_MSM_EUML_EVENT_WITH_ATTRIBUTES(*someEvent*, *someAttributeList*)
someStateMachine.process_event(
someEvent (
valueOfSomeAttribute1, // sets the attribute value here
valueOfSomeAttribute2))
并且在一个动作中我可以通过写
evt.get_attribute(someAttribute1); // retrieve the attribute value
现在,如果我为整台机器设置一个属性,如下所示:
BOOST_MSM_EUML_DECLARE_STATE_MACHINE((transition_table,
init_ << initState,
Entry_Action,
Exit_Action,
attributes_ << someAttribute1 << someAttribute2,
configure_<< someConfigurationStuff ),
newStateMachineType)
如何为 someAttribute1 设置值?
对州同样的问题:
BOOST_MSM_EUML_STATE(
(someEntryAction,
someExitAction,
attributes_ << someAttribute1,
configure_<< someConfigurationStuff)
,newStateName)
如何为 someAttribute1 设置值?
最后,
有没有办法在创建对象后更改属性?
例如,我想为状态机设置一个属性,并且在我的一个状态中,记住一些我可以存储在状态机中的信息。(在这种情况下,我想存储一个套接字。)
谢谢。