Annotation of OpenXM/doc/OpenXM-specs/library.tex, Revision 1.1.1.1
1.1 noro 1: %% $OpenXM$
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}
27: int xxx_ox_byte_order(int type)
28: \end{verbatim}
29: */
30: /*&eg
31: Specify the byte order to send int32 to the OX server xxx.
32: When type = 0, the network byte order will be used.
33: In case of error, -1 will be returned.
34: */
35: /*&jp
36: OX サーバ xxx へ int32 を送るための byte order を type で指定する.
37: ライブラリではあるが,
38: type = 0 で, network byte order を使用できないといけない??
39: 失敗した場合, -1 を戻す.
40: */
41:
42: /*&C
43:
44: \smallskip
45: \begin{verbatim}
46: void xxx_ox_push_cmo(void *cmo, int size)
47: \end{verbatim}
48: */
49: /*&eg
50: Push the binary encoded CMO {\tt cmo} of the size {\tt size}
51: onto the stack of the OX server xxx.
52: */
53: /*&jp
54: Binary encoded された CMO (サイズは size) を, OX サーバ xxx
55: の stack に push する.
56: */
57: /*&C
58:
59: \smallskip
60: \begin{verbatim}
61: int xxx_ox_pop_cmo(void *cmo, int limit)
62: \end{verbatim}
63: */
64: /*&eg
65: Pop a binary encoded CMO from the OX server xxx
66: and write it at {\tt cmo}.
67: The return value is the size of the CMO in bytes.
68: In case of the stack underflow, the return value is 0.
69: If the size exceeds the {\tt limit}, -1 will be returned
70: and the CMO is not popped and will not be written to {\tt cmo}.
71: */
72: /*&jp
73: Binary encoded された CMO (サイズは size) を, OX サーバより
74: pop して, cmo に書き込む.
75: 戻り値は CMO のサイズを byte で戻す.
76: Stack underflow の場合の戻り値は 0 である.
77: ただし, limit より大きいサイズの CMO は書き込まれない.
78: この場合, 戻り値は -1 となる.
79: */
80:
81: /*&C
82:
83: \smallskip
84: \begin{verbatim}
85: int xxx_ox_peek_cmo_size()
86: \end{verbatim}
87: */
88: /*&eg
89: Return the size of the CMO at the top of the stack.
90: */
91:
92: /*&C
93:
94: \smallskip
95: \begin{verbatim}
96: int xxx_ox_peek_cmo_size()
97: \end{verbatim}
98: */
99: /*&jp
100: stack の一番上にある CMO のサイズを byte で戻す.
101: ( ライブラリ版特有 )
102: */
103:
104: /*&C
105:
106: \smallbreak
107: \begin{verbatim}
108: ox_push_cmd(), ox_execute_string()
109: \end{verbatim}
110: */
111: /*&eg
112: These functions have the same specification with those
113: in Asir client functions. See Asir document.
114: Numbers should be given in int 32 and strings should be given
115: by char *
116: */
117: /*&jp
118: については, Asir クライアントと同じインタフェース.
119: 数は int32 で, 文字列は char * で.
120: */
121:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>