Annotation of OpenXM/doc/OpenXM-specs/library.tex, Revision 1.2
1.2 ! noro 1: %% $OpenXM: OpenXM/doc/OpenXM-specs/library.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $
1.1 noro 2: /*&jp
3: \section{ OX サーバに対する C ライブラリインタフェース }
4:
5: 一部のOX サーバでは C のライブラリとしてリンクして使用するもできる.
6: ライブラリとして使用するための C の関数は
7: Asir の OX サーバ用クライアント関数に似たインタフェースを持つ.
8:
9: ライブラリ関数には, CMO を binary encoding して渡す.
10: ライブラリ関数からは, CMO が binary encoded form で戻る.
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.
17: The interface functions of the C library
18: are similar to Asir OX client functions such as
19: \verb+ ox_push_cmo() +, \verb+ ox_pop_cmo() +.
20:
21: CMO should be in the binary encoded form to call these functions.
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.
! 33: If type is equal to 0, the network byte order will be used.
! 34: If type is equal to 1, the little endian order will be used.
1.1 noro 35: In case of error, -1 will be returned.
36: */
37: /*&jp
1.2 ! noro 38: この関数はライブラリインタフェースの初期化を行う.
1.1 noro 39: OX サーバ xxx へ int32 を送るための byte order を type で指定する.
1.2 ! noro 40: type = 0 の場合 network byte order が設定される.
! 41: type = 1 の場合 little endian order が設定される.
1.1 noro 42: 失敗した場合, -1 を戻す.
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.2 ! noro 56: Binary encoded された CMO を, OX サーバ xxx
1.1 noro 57: の stack に push する.
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
75: Binary encoded された CMO (サイズは size) を, OX サーバより
76: pop して, cmo に書き込む.
77: 戻り値は CMO のサイズを byte で戻す.
78: Stack underflow の場合の戻り値は 0 である.
79: ただし, limit より大きいサイズの CMO は書き込まれない.
80: この場合, 戻り値は -1 となる.
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:
94: /*&C
95:
96: \smallskip
97: \begin{verbatim}
98: int xxx_ox_peek_cmo_size()
99: \end{verbatim}
100: */
101: /*&jp
102: stack の一番上にある CMO のサイズを byte で戻す.
103: */
104:
1.2 ! noro 105: \smallbreak
! 106: \begin{verbatim}
! 107: void xxx_ox_push_cmd(int cmd)
! 108: \end{verbatim}
! 109: /*&eg
! 110: This function sends a stack machine command
! 111: ({\tt OX\_COMMAND},int32 cmd) to a server.
! 112: */
! 113: /*&jp
! 114: ({\tt OX\_COMMAND},int32 cmd) をサーバに送る.
! 115: */
1.1 noro 116:
117: \begin{verbatim}
1.2 ! noro 118: void xxx_ox_execute_string(char *s)
1.1 noro 119: \end{verbatim}
120: */
121: /*&eg
1.2 ! noro 122: These function requests a server to execute a string {\tt s}.
! 123: {\tt s} should be acceptable by the parser of the server.
1.1 noro 124: */
125: /*&jp
1.2 ! noro 126: 文字列 {\tt s} をサーバに実行させる. {\tt s} はサーバのパーザ
! 127: が受理可能なものでなければならない.
1.1 noro 128: */
129:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>