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

Annotation of OpenXM/doc/OpenXM-specs/library.tex, Revision 1.7

1.7     ! takayama    1: %% $OpenXM: OpenXM/doc/OpenXM-specs/library.tex,v 1.6 2002/01/20 09:26:22 takayama Exp $
1.1       noro        2: /*&jp
1.7     ! takayama    3: \section{ OX サーバに対する C ライブラリインタフェース }
1.1       noro        4:
1.7     ! takayama    5: 一部のOX サーバでは C のライブラリとしてリンクして使用するもできる.
        !             6: ライブラリとして使用するための C の関数は
        !             7: Asir の OX サーバ用クライアント関数に似たインタフェースを持つ.
1.1       noro        8:
1.7     ! takayama    9: ライブラリ関数には, CMO を binary encoding して渡す.
        !            10: ライブラリ関数からは, CMO が binary encoded form で戻る.
1.1       noro       11:
                     12: */
                     13: /*&eg
                     14: \section{ OX servers as a C library}
                     15:
                     16: In some OX servers, one can use the OX server as a C library.
1.6       takayama   17: The API to the C library
                     18: is similar to Asir OX client API such as
1.3       noro       19: {\tt ox\_push\_cmo()}, {\tt ox\_pop\_cmo()}.
1.1       noro       20:
1.3       noro       21: CMO should be converted into the binary encoded form to call these functions.
1.1       noro       22: */
                     23: /*&C
                     24:
                     25: \medbreak
                     26: \begin{verbatim}
1.2       noro       27:   int xxx_ox_init(int type)
1.1       noro       28: \end{verbatim}
                     29: */
                     30: /*&eg
1.2       noro       31:   This function initializes the library interface.
                     32:   {\tt type} specifies the byte order to send int32 to the OX server xxx.
1.4       noro       33:   If type is equal to 0, the native byte order will be used.
                     34:   If type is equal to 1, the network byte order will be used.
1.1       noro       35:   In case of error, -1 will be returned.
                     36: */
                     37: /*&jp
1.7     ! takayama   38:   この関数はライブラリインタフェースの初期化を行う.
        !            39:   OX サーバ xxx へ int32 を送るための byte order を type で指定する.
        !            40:   type = 0 の場合 native byte order が設定される.
        !            41:   type = 1 の場合 network byte order が設定される.
        !            42:   失敗した場合, -1 を戻す.
1.1       noro       43: */
                     44:
                     45: /*&C
                     46:
                     47: \smallskip
                     48: \begin{verbatim}
1.2       noro       49:   void xxx_ox_push_cmo(void *cmo)
1.1       noro       50: \end{verbatim}
                     51: */
                     52: /*&eg
1.2       noro       53: Push the binary encoded CMO {\tt cmo} onto the stack of the OX server xxx.
1.1       noro       54: */
                     55: /*&jp
1.7     ! takayama   56: Binary encoded された CMO を, OX サーバ xxx
        !            57: の stack に push する.
1.1       noro       58: */
                     59: /*&C
                     60:
                     61: \smallskip
                     62: \begin{verbatim}
1.2       noro       63:   int xxx_ox_pop_cmo(void cmo, int limit)
1.1       noro       64: \end{verbatim}
                     65: */
                     66: /*&eg
                     67: Pop a binary encoded CMO from the OX server xxx
                     68: and write it at {\tt cmo}.
                     69: The return value is the size of the CMO in bytes.
                     70: In case of the stack underflow, the return value is 0.
                     71: If the size exceeds the {\tt limit}, -1 will be returned
                     72: and the CMO is not popped and will not be written to {\tt cmo}.
                     73: */
                     74: /*&jp
1.7     ! takayama   75: Binary encoded された CMO (サイズは size) を,  OX サーバより
        !            76: pop して, cmo に書き込む.
        !            77: 戻り値は CMO のサイズを byte で戻す.
        !            78: Stack underflow の場合の戻り値は 0 である.
        !            79: ただし, limit より大きいサイズの CMO は書き込まれない.
        !            80: この場合, 戻り値は -1 となる.
1.1       noro       81: */
                     82:
                     83: /*&C
                     84:
                     85: \smallskip
                     86: \begin{verbatim}
                     87:   int xxx_ox_peek_cmo_size()
                     88: \end{verbatim}
                     89: */
                     90: /*&eg
                     91: Return the size of the CMO at the top of the stack.
                     92: */
                     93: /*&jp
1.7     ! takayama   94: stack の一番上にある CMO のサイズを byte で戻す.
1.1       noro       95: */
                     96:
1.2       noro       97: \smallbreak
                     98: \begin{verbatim}
1.3       noro       99:  void xxx_ox_push_cmd(int cmd)
1.2       noro      100: \end{verbatim}
                    101: /*&eg
                    102: This function sends a stack machine command
                    103: ({\tt OX\_COMMAND},int32 cmd) to a server.
                    104: */
                    105: /*&jp
1.7     ! takayama  106: ({\tt OX\_COMMAND},int32 cmd) をサーバに送る.
1.2       noro      107: */
1.1       noro      108:
                    109: \begin{verbatim}
1.3       noro      110:  void xxx_ox_execute_string(char *s)
1.1       noro      111: \end{verbatim}
                    112: /*&eg
1.6       takayama  113: This function requests a server to execute a command expressed by
                    114: a string {\tt s}.
1.2       noro      115: {\tt s} should be acceptable by the parser of the server.
1.1       noro      116: */
                    117: /*&jp
1.7     ! takayama  118: 文字列 {\tt s} をサーバに実行させる. {\tt s} はサーバのパーザ
        !           119: が受理可能なものでなければならない.
1.5       takayama  120: */
                    121:
                    122: //&C
                    123:
                    124: /*&jp
1.7     ! takayama  125: ライブラリモードのサンプルソースは {\tt OpenXM/doc/oxlib}
        !           126: にある.
1.5       takayama  127: */
                    128:
                    129: /*&eg
                    130: Sample source codes to use the library mode interface can be found in
                    131: {\tt OpenXM/doc/oxlib}.
1.1       noro      132: */
                    133:

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