ScxmlStateMachine QML Type
SCXML ファイルから作成されたステートマシンへのインターフェイスを提供します。詳細...
Import Statement: | import QtScxml 6.8 |
In C++: | QScxmlStateMachine |
プロパティ
- dataModel : ScxmlDataModel
- initialValues : var
- initialized : bool
- invoked : bool
- invokedServices : list
- loader : Loader
- name : string
- parseErrors : var
- running : bool
- sessionId : string
信号
- finished()
- log(string label, string msg)
- reachedStableState()
方法
- activeStateNames(bool compress)
- cancelDelayedEvent(string sendId)
- init()
- isActive(string scxmlStateName)
- isDispatchableTarget(string target)
- start()
- stateNames(bool compress)
- stop()
- submitEvent(event)
- submitEvent(string eventName, var data)
詳細な説明
ScxmlStateMachine 型はステートチャート XML (SCXML) の実装です。
SCXML ファイルで定義されているすべての状態は、この型のプロパティとしてアクセス可能です。これらのプロパティはブール値で、状態がアクティブか非アクティブかを示します。
プロパティの記述
dataModel : ScxmlDataModel |
このステートマシンに使用されるデータモデル。
SCXML のデータモデルについては、SCXML Specification - 5 Data Model and Data Manipulation を参照してください。サポートされるデータモデルについての詳細はSCXML Compliance を参照してください。
ステートマシンがinitialized になっているときにデータモデルを変更することは SCXML 標準では規定されておらず、未定義の動作につながります。
QScxmlDataModel 、QScxmlNullDataModel 、QScxmlCppDataModelも参照して ください。
initialValues : var |
データモデルの設定に使用する初期値。
initialized : bool |
この読み取り専用プロパティは、ステートマシンが初期化されている場合はtrue
に設定され、そうでない場合はfalse
に設定されます。
invoked : bool |
ステートマシンが外部のステートマシンから起動されたかどうか。
この読み取り専用プロパティは、ステートマシンが<invoke>
要素を持つサービスとして開始された場合はtrue
に設定され、そうでない場合はfalse
に設定される。
invokedServices : list |
メインステートマシンから呼び出されたSCXMLサービスのリスト(再帰的に呼び出されることもある)。
loader : Loader |
ステートマシンのURIを解決してロードするために現在使用されているローダー。
name : string |
<scxml>
タグのname属性で設定されたステートマシンの名前。
parseErrors : var |
SCXML ファイルからステートマシンを作成する際に発生した解析エラーのリスト。
running : bool |
このステートマシンの実行状態。
sessionId : string |
現在のステートマシンのセッション ID。
セッション ID は、親と子のステートマシン間のメッセージ・ルーティングに使用されます。ステートマシンが<invoke>
要素によって開始された場合、そのステートマシンが送信するイベントには、invokeid
フィールドにセッション ID が設定されます。ステートマシンは、正しい子ステートマシンにメッセージをディスパッチするために、イベントのオリジン(<send>
要素のtargetまたはtargetexpr属性によって設定される)を使用する。
シグナル・ドキュメント
finished() |
このシグナルは、ステートマシンがトップレベルの最終状態に達したときに発せられる。
対応するシグナルハンドラはonFinished()
です。
注意: 対応するハンドラはonFinished
です。
log(string label, string msg) |
<log>
label は タグの<log>
label属性の値です。 は タグのmsg <log>
expr属性の値です。expr属性がない場合は、NULL文字列が返されます。
対応するシグナル・ハンドラはonLog()
です。
注: 対応するハンドラはonLog
です。
reachedStableState() |
このシグナルは、マクロ・ステップの終了時にイベント・キューが空になったとき、または最終状態に達したときに発行される。
対応するシグナルハンドラはonreachedStableState()
である。
注: 対応するハンドラはonReachedStableState
。
メソッド ドキュメント
activeStateNames(bool compress) |
すべてのアクティブな状態の状態名のリストを取得する。
状態がアクティブであるとき、定義によりその親状態はすべてアクティブである。compress がtrue
(デフォルト) の場合、親状態はフィルタリングされ、リーフ状態のみが返されます。false
の場合、アクティブな状態の完全なリストが返される。
cancelDelayedEvent(string sendId) |
指定されたsendId で遅延イベントをキャンセルする。
init() |
<data>
要素の初期値を設定し、<scxml>
タグの<script>
タグを実行することで、ステートマシンを初期化する。初期データ値はinitialValues プロパティから取得される。
構文解析エラーが発生した場合、または初期化ステップのいずれかが失敗した場合は、false
を返します。それ以外の場合はtrue
を返す。
isActive(string scxmlStateName) |
scxmlStateName で指定された状態がアクティブであればtrue
を、そうでなければfalse
を返す。
isDispatchableTarget(string target) |
このステートマシンでtarget へのメッセージをディスパッチできる場合はtrue
を返す。
有効なターゲットは以下のとおり:
#_parent
によって現在のステートマシンが開始される場合、親ステートマシン。<invoke>
#_internal
現在のステートマシン#_scxml_sessionid
sessionid
は、現在のステートマシンのセッションIDである。#_servicename
servicename
は、このステートマシンが で開始したサービスの ID または名前である。<invoke>
start() |
stateNames(bool compress) |
すべての状態の状態名のリストを取得する。
compress がtrue
(デフォルト) の場合、子状態を含む状態がフィルタリングされ、リーフ状態のみが返される。これがfalse
の場合、すべての状態の完全なリストが返される。
返されるリストには、入れ子になったステートマシンの状態は含まれません。
注意: リスト内の状態名の順序は、SCXMLドキュメント内で状態が発生した順序である。
stop() |
submitEvent(event) |
SCXML イベントevent を、イベントの優先順位に応じて内部または外部のイベントキューに投入します。
遅延が設定されている場合、イベントはタイムアウトが経過した後に配送のためにキューに入れられます。ステートマシンはイベントの所有権を持ち、処理後に削除します。
QScxmlEventも参照してください 。
submitEvent(string eventName, var data) |
指定されたeventName を名前として、data をペイロードデータ(オプション)として、外部イベントを作成し、サブミットするユーティリティ・メソッド。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.