MSMブーストライブラリに慣れ親しんでいます。私はこれが本当に面白いと知ったquestionsいくつかの直交状態に加わることについて。MSMブーストライブラリで同じサブステートマシンの複数のインスタンスを実行するにはどうすればいいですか
また、ブーストのドキュメントでは、親ステートマシン内でサブステートマシンを再利用する方法を見つけました。シンプルなネストステートマシンをいくつかコーディングしました。
しかし、私はこの2つのものを混ぜ合わせる方法を頭で覆うことはできません。
私の目標は、同じサブ状態マシンのいくつかの独立したインスタンスにフォークし、それらが終了するまで待機してから、コントロールを親に戻すことです。
しかし、boost documentationは、サブステートマシンに直接フォークすることはできないと言います。
注:フォークにも有効です。現時点では、明示的なエントリのターゲットとしてサブマシンを使用することはできません。ほとんど同じ効果のためにエントリー擬似状態を使用してください。その後、
例チケット飛行機を購入すると、サブステートマシンとしてモデルとなり得る
、あなたが価格を要求し、あなたがそれを購入することができますよりも、いくつかの評価を行い、(キャンセル及び秩序の無い完成も可能です)。しかし、同じ論理を複数の航空会社に適用することができます。 ここでは、市場をスキャンし、さまざまなプロバイダから一定量のチケットを予約するソフトウェアを作成するとします。 私たちは顧客から注文を受け取り、市場に照会し、4つの異なる航空会社から購入することに決めました(顧客は気にしません)。 これで、4つのサブステートマシンが並行して動作し、最後のオーダーが完了したときにのみ、コントロールが親ステートマシンに戻ります。 (私はこの例が素晴らしいとは思いませんが、あなたがそのアイデアを得たことを願っています)。
質問
それはフォークと同じ状態マシンのいくつかのインスタンスを使用(または擬似状態とほぼ同じ効果を実現)することは可能ですか?ステートマシンは、どのサブステートマシンがイベントを参照しているかをどのように知っていますか?
可能であれば、正しい方向に私を指摘できますか?私はこのブースト資料exampleについて知っていますが、実際に私の問題に対処していません。
私は自分のプロジェクトの初期段階ですから、必要に応じて別のステートマシンライブラリに移動することができます(ステートチャートも評価中です)。
ありがとう、私は間違いなくあなたのアプローチを構築することができます。私は慎重にあなたの例を勉強するつもりです、ありがとう。 –