プログラミングインタフェース

状態遷移

次の表は、XTI/TLI 関連のすべての状態遷移を説明します。

XTI/TLI 状態

次の表に、XTI/TLI の状態遷移で使用される状態とサービスタイプを定義します。

表 9–1 XTI/TLI 状態遷移とサービスタイプ

状態 

説明 

サービスタイプ 

T_UNINIT

初期化が行われていない - インタフェースの初期状態と終了状態 

T_COTST_COTS_ORDT_CLTS

T_UNBND

初期化されているが、バインドされていない 

T_COTST_COTS_ORDT_CLTS

T_IDLE

コネクションが確立されていない 

T_COTST_COTS_ORDT_CLTS

T_OUTCON

クライアントに対する送信コネクションが保留中 

T_COTST_COTS_ORD

T_INCON

サーバーに対する受信コネクションが保留中 

T_COTST_COTS_ORD

T_DATAXFER

データ転送 

T_COTST_COTS_ORD

T_OUTREL

送信正常型解放 (正常型解放要求待ち) 

T_COTS_ORD

T_INREL

受信正常型解放 (正常型解放要求の送信待ち) 

T_COTS_ORD

送信イベント

次の表に示す送信イベントは、指定されたトランスポートルーチンから返される状態に対応しており、このようなイベントにおいて、これらのルーチンはトランスポートプロバイダに要求または応答を送信します。この表で示すイベントの一部 (accept など) は、発生した時点におけるコンテキストによって意味が変わります。これらのコンテキストは、次の変数の値に基づきます。

表 9–2 送信イベント

イベント 

説明 

サービスタイプ 

opened

t_open(3NSL) が正常に終了した

T_COTST_COTS_ORDT_CLTS

bind

t_bind(3NSL) が正常に終了した

T_COTST_COTS_ORDT_CLTS

optmgmt

t_optmgmt(3NSL) が正常に終了した

T_COTST_COTS_ORDT_CLTS

unbind

t_unbind(3NSL) が正常に終了した

T_COTST_COTS_ORDT_CLTS

closed

t_close(3NSL) が正常に終了した

T_COTST_COTS_ORDT_CLT

connect1

同期モードの t_connect(3NSL) が正常に終了した

T_COTST_COTS_ORD

connect2

非同期モードの t_connect(3NSL)TNODATA エラーが発生したか、あるいは、切断要求がトランスポート終端に着信したことにより TLOOK エラーが発生した

T_COTST_COTS_ORD

accept1

ocnt == 1fd == resfd を指定した t_accept(3NSL) が正常に終了した

T_COTST_COTS_ORD

accept2

ocnt == 1fd != resfd を指定した t_accept(3NSL) が正常に終了した

T_COTST_COTS_ORD

accept3

ocnt > 1 を指定した t_accept(3NSL) が正常に終了した

T_COTST_COTS_ORD

snd

t_snd(3NSL) が正常に終了した

T_COTST_COTS_ORD

snddis1

ocnt <= 1 を指定した t_snddis(3NSL) が正常に終了した

T_COTST_COTS_ORD

snddis2

ocnt > 1 を指定した t_snddis(3NSL) が正常に終了した

T_COTST_COTS_ORD

sndrel

t_sndrel(3NSL) が正常に終了した

T_COTS_ORD

sndudata

t_sndudata(3NSL) が正常に終了した

T_CLTS

受信イベント

受信イベントは、指定されたルーチンが正常に終了したときに発生します。これらのルーチンは、トランスポートプロバイダからのデータやイベント情報を返します。ルーチンから返された値に直接関連付けられていない唯一の受信イベントは pass_conn であり、このイベントはコネクションが他の終端に移行するときに発生します。終端で XTI/TLI ルーチンを呼び出さなくても、コネクションを渡している終端ではこのイベントが発生します。

次の表では、rcvdis イベントは、終端上の未処理のコネクション要求の数を示す ocnt の値によって区別されます。

表 9–3 受信イベント

イベント 

説明 

サービスタイプ 

listen

t_listen(3NSL) が正常に終了した

T_COTST_COTS_ORD

rcvconnect

t_rcvconnect(3NSL) が正常に終了した

T_COTST_COTS_ORD

rcv

t_rcv(3NSL) が正常に終了した

T_COTST_COTS_ORD

rcvdis1

onct <= 0 を指定した t_rcvdis(3NSL) が正常に終了した()

T_COTST_COTS_ORD

rcvdis2

ocnt == 1 を指定した t_rcvdis(3NSL) が正常に終了した

T_COTST_COTS_ORD

rcvdis3

ocnt > 1 を指定した t_rcvdis(3NSL) が正常に終了した

T_COTST_COTS_ORD

rcvrel

t_rcvrel(3NSL) が正常に終了した

T_COTS_ORD

rcvudata

t_rcvudata(3NSL) が正常に終了した

T_CLTS

rcvuderr

t_rcvuderr(3NSL) が正常に終了した

T_CLTS

pass_conn

渡されたコネクションを受信した 

T_COTST_COTS_ORD

状態テーブル

状態テーブルは、XTI/TLI の状態遷移を示します。状態テーブルの列には現在の状態を、行には現在のイベントを、行と列の交差する部分では次に発生する状態を示しています。次に発生する状態が空の場合は、状態とイベントの組み合わせが無効であることを意味します。また次に発生する状態には、動作一覧が示されている場合もあります。動作は、指定された順序で実行する必要があります。

状態テーブルを見る場合は、次の点を理解してください。

次の表の状態遷移には、トランスポートユーザーが行う必要がある動作が記載されているものもあります。各動作は、次のリストから求められた数字によって表現されます。

次の表に、終端の確立の状態を示します。

表 9–4 コネクション確立時における状態

イベント/状態 

T_UNINIT

T_UNBND

T_IDLE

opened

T_UNBND

 

 

bind

 

T_IDLE[1]

 

optmgmt (TLI のみ)

 

 

T_IDLE

unbind

 

 

T_UNBND

closed

 

T_UNINIT

 

次の表に、コネクションモードにおけるデータの転送の状態を示します。

表 9–5 コネクションモードにおける状態: その 1

イベント/状態 

T_IDLE

T_OUTCON

T_INCON

T_DATAXFER

connect1

T_DATAXFER

 

 

 

connect2

T_OUTCON

 

 

 

rcvconnect

 

T_DATAXFER

 

 

listen

T_INCON [2]

 

T_INCON [2]

 

accept1

 

 

T_DATAXFER [3]

 

accept2

 

 

T_IDLE [3] [4]

 

accept3

 

 

T_INCON [3] [4]

 

snd

 

 

 

T_DATAXFER

rcv

 

 

 

T_DATAXFER

snddis1

 

T_IDLE

T_IDLE [3]

T_IDLE

snddis2

 

 

T_INCON [3]

 

rcvdis1

 

T_IDLE

 

T_IDLE

rcvdis2

 

 

T_IDLE [3]

 

rcvdis3

 

 

T_INCON [3]

 

sndrel

 

 

 

T_OUTREL

rcvrel

 

 

 

T_INREL

pass_conn

T_DATAXFER

 

 

 

optmgmt

T_IDLE

T_OUTCON

T_INCON

T_DATAXFER

closed

T_UNINIT

T_UNINIT

T_UNINIT

T_UNINIT

次の表に、コネクションモードにおけるコネクションの確立、コネクションの解放、およびデータの転送の状態を示します。

表 9–6 コネクションモードにおける状態: その 2

イベント/状態 

T_OUTREL

T_INREL

T_UNBND

connect1

 

 

 

connect2

 

 

 

rcvconnect

 

 

 

listen

 

 

 

accept1

 

 

 

accept2

 

 

 

accept3

 

 

 

snd

 

T_INREL

 

rcv

T_OUTREL

 

 

snddis1

T_IDLE

T_IDLE

 

snddis2

 

 

 

rcvdis1

T_IDLE

T_IDLE

 

rcvdis2

 

 

 

rcvdis3

 

 

 

sndrel

 

T_IDLE

 

rcvrel

T_IDLE

 

 

pass_conn

 

 

T_DATAXFER

optmgmt

T_OUTREL

T_INREL

T_UNBND

closed

T_UNINIT

T_UNINIT

 

次の表に、コネクションレスモードにおける状態を示します。

表 9–7 コネクションレスモードにおける状態

イベント/状態 

T_IDLE

snudata

T_IDLE

rcvdata

T_IDLE

rcvuderr

T_IDLE