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>