[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     ! 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>