3

私が書いていないステート マシンを変更する必要がある状況にあります。このステート マシンはBoost Statechartを使用して記述されます。残念ながら、このコードは解読不能であり、それを書いた人休暇中です。

問題は単純だと思いますthing。これらの状態のいくつかで使用したい変数 があります。これは、情報を受け取る必要がある単一のアプリケーション コントローラーを表します。thingマシンの状態で利用できるようにするために、どのコンストラクター (または何でも) に与えることができますか?

状態は、次の例に従って宣言されます。

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

PSこの質問にはもっと良いタイトルが欲しいです。助けていただければ幸いです。

4

1 に答える 1

5

マシンコンストラクターに渡す必要があるように聞こえますか? もしそうなら、それをマシンのデータメンバーにするのがおそらく最善です。ステートは、outermost_context() 関数を使用してマシンにアクセスできます。したがって、state の内部では、outermost_context().get_thing() のようなものを記述します。

于 2011-02-14T11:00:55.673 に答える