如何在boost :: statechart中将对象赋予状态?

时间:2011-02-10 18:21:41

标签: c++ state-machine boost-statechart

我处于需要修改我没写的状态机的情况。此状态机使用Boost Statechart编写。不幸的是,我发现这段代码难以理解,的人正在度假。

问题很简单,我认为:我有一个变量thing,我希望在某些状态中使用它。它代表了一个需要了解事物的单一应用程序控制器。我可以给thing一个构造函数(或其他什么),使其可用于机器的状态?

根据此示例声明状态:

struct Pumping : sc::state< Pumping, Purifier >
{
  Pumping( my_context ctx ) : my_base( ctx )
  {
    post_event( EvPumpingStarted() );
  }
  // ...
};

P.S。我希望这个问题有更好的标题;帮助赞赏。

1 个答案:

答案 0 :(得分:5)

听起来应该将东西传递给机器构造函数?如果是这样,最好将其作为机器的数据成员。状态可以使用outermost_context()函数访问计算机。所以,在一个州内,你会写一些像outermost_context()。get_thing()。