[BACK]Return to control.tex CVS log [TXT][DIR] Up to [local] / OpenXM / doc / OpenXM-specs

Annotation of OpenXM/doc/OpenXM-specs/control.tex, Revision 1.1.1.1

1.1       noro        1: %% $OpenXM$
                      2: //&jp \section{コントロールメッセージ (SMObject/TCPIP/Control)}
                      3: //&eg \section{Control message (SMObject/TCPIP/Control)} (This section has not been translated.)
                      4:
                      5: /*&jp
                      6: \begin{enumerate}
                      7: \item
                      8: サーバは {\tt SM\_control\_reset\_connection}
                      9: メッセージを受信したら, 現在の計算を中断する.
                     10: 中断操作は細心の注意をもって行なわないといけない.
                     11: サンプルサーバ ({\tt oxmain.c})では, コントロールメッセージの
                     12: 処理は別のプロセスがおこなっており, SIGUSR1 割り込みをスタックマシンへ
                     13: かける.
                     14: もしサーバがメッセージの通信中であれば, このコントロールメッセージ
                     15: をすぐには実行せず, メッセージ通信を終了するのを待つ.
                     16: 当然, メッセージを発信中に, このメッセージを送信してもいけない.
                     17: (Java 風にいえば, すべての メッセージは synchronized object である.)
                     18: また, たとえば file IO なども, 中断をうけてはならない, synchronized な
                     19: 操作であろう.
                     20: クライアントがサーバに controlResetConnection コントロールメッセージを
                     21: おくったら, サーバは, 現在の受信バッファをすべてクリアし,
                     22: クライアントへ
                     23: {\tt OX\_SYNC\_BALL}
                     24: を送る.
                     25: クライアントは, コントロールメッセージをおくったあと,
                     26: 待機モードに入り, {\tt OX\_SYNC\_BALL}
                     27: をうけとるまですべてのメッセージを読み飛ばす.
                     28: クライアントは {\tt OX\_SYNC\_BALL} をうけとったら,
                     29: サーバに {\tt OX\_SYNC\_BALL} を送る.
                     30: サーバは, 最初の {\tt OX\_SYNC\_BALL} を投げたあと,
                     31: 待機モードに入り,
                     32: {\tt OX\_SYNC\_BALL}
                     33: をうけとるまですべてのメッセージを読み飛ばす.
                     34: %% 最後に,  サーバ
                     35: %% はすべての操作が終了したことを通知するため,
                     36: %% クライアントに
                     37: %% {\tt OX\_SYNC\_BALL} を投げる.
                     38: \\ Request:
                     39: \begin{tabular}{|c|c|}  \hline
                     40: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_reset\_connection}  \\
                     41: \hline
                     42: \end{tabular}
                     43: \\ Result:
                     44: \begin{tabular}{|c|c|}  \hline
                     45: {\tt int32 OX\_DATA} & {\tt CMO\_INT32} {\rm result} \\
                     46: \hline
                     47: \end{tabular}
                     48:
                     49: @@@
                     50:
                     51: \item
                     52: サーバはこのメッセージを受信したらただちにコントロールメッセージへの
                     53: 返答をおくり, すべてのファイルをクローズして終了する.
                     54: \\ Request:
                     55: \begin{tabular}{|c|c|}  \hline
                     56: {\tt int32 OX\_COMMAND} & {\tt int32 SM\_control\_kill}  \\
                     57: \hline
                     58: \end{tabular}
                     59: \\ Result:
                     60: Empty \\
                     61:
                     62:
                     63: \end{enumerate}
                     64:
                     65: \medbreak
                     66: \noindent
                     67: {\bf 例}: (シリアル番号は省略してある.)\
                     68: \begin{verbatim}
                     69: 0  0 2 01 (OX_COMMAND)
                     70: 0  0 4 06 (SM_control_reset_connection)
                     71: \end{verbatim}
                     72:
                     73: Reset に対する返事.
                     74: \begin{verbatim}
                     75: 0  0 2 02 (OX_DATA)
                     76: 0  0 0  2 (CMO_INT32)
                     77: 0  0 0  0 (  0   )
                     78: \end{verbatim}
                     79:
                     80:
                     81: 第1のチャンネルでは次の {\tt OX\_SYNC\_BALL} が交換されて同期が
                     82: 取られる.
                     83: \begin{verbatim}
                     84: 0   0   2   03   (OX_SYNC_BALL)
                     85: \end{verbatim}
                     86:
                     87: */
                     88:
                     89:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>