0

何百もの状態とアクション/イベントを持つ可能性のあるネットワークベースのサーバーを開発しています。これまでのところ、単純な switch ステートメントで管理してきましたが、text/xml ファイルによって外部から構成できるステート マシンの必要性を感じています。

ファイルから外部で状態/イベントを構成できるようにする既存の C++ 状態マシンについて、あなたの提案は何ですか?

ブースト ステート マシンを見ましたが、ステート マシン ファイルからクラスを生成する機能がないようで、何百ものクラスを手動で作成したくありませんか?

他のオプションは何ですか?

4

2 に答える 2

1

柔軟に対応したい場合は、Qt State Machine http://doc.qt.nokia.com/4.6/statemachine-api.htmlを探す必要があります。

于 2010-08-16T20:20:48.620 に答える
1

QP (http://www.state-machine.com) は、私の考えでは、非常にモデル駆動型の開発に適した別のオプションです。最近、私の意見を裏付ける学期論文を読みました: http://security.hsr.ch/mse/projects/2011_Code_Generator_for_UML_State_Machines.pdf

理論的には、非常にノイズのない構文を持つ boost::msm eUML フロント エンドを使用することもできます。これはブーストからの簡単な例です:

BOOST_MSM_EUML_TRANSITION_TABLE(( 
Playing  == Stopped + play [some_guard] / (some_action , start_playback) ,
Open     == Stopped + open_close/ open_drawer                            ,
Stopped  == Stopped + stop                                               ,
Empty    == Open    + open_close / close_drawer                          ,
Open     == Empty   + open_close / open_drawer                           ,
Stopped  == Empty   + cd_detected [good_disk_format] / store_cd_info
),transition_table)  

eUML の「実験的」ステータスをどの程度真剣に受け止めるべきかわかりませんが、これまでのところ問題はありませんでした。

于 2012-10-23T15:50:44.580 に答える