version 1.2, 2000/01/24 00:57:11 |
version 1.7, 2020/03/14 01:21:56 |
|
|
%% $OpenXM: OpenXM/doc/OpenXM-specs/library.tex,v 1.1.1.1 2000/01/20 08:52:46 noro Exp $ |
%% $OpenXM: OpenXM/doc/OpenXM-specs/library.tex,v 1.6 2002/01/20 09:26:22 takayama Exp $ |
/*&jp |
/*&jp |
\section{ OX サーバに対する C ライブラリインタフェース } |
\section{ OX 泣若絲障 C ゃゃ潟帥с若 } |
|
|
一部のOX サーバでは C のライブラリとしてリンクして使用するもできる. |
筝OX 泣若с C ゃ潟篏睡с. |
ライブラリとして使用するための C の関数は |
ゃ篏睡 C ∽違 |
Asir の OX サーバ用クライアント関数に似たインタフェースを持つ. |
Asir OX 泣若ゃ≪潟∽違篌若ゃ潟帥с若鴻. |
|
|
ライブラリ関数には, CMO を binary encoding して渡す. |
ゃ∽違, CMO binary encoding 羝<. |
ライブラリ関数からは, CMO が binary encoded form で戻る. |
ゃ∽違, CMO binary encoded form ф祉. |
|
|
*/ |
*/ |
/*&eg |
/*&eg |
\section{ OX servers as a C library} |
\section{ OX servers as a C library} |
|
|
In some OX servers, one can use the OX server as a C library. |
In some OX servers, one can use the OX server as a C library. |
The interface functions of the C library |
The API to the C library |
are similar to Asir OX client functions such as |
is similar to Asir OX client API such as |
\verb+ ox_push_cmo() +, \verb+ ox_pop_cmo() +. |
{\tt ox\_push\_cmo()}, {\tt ox\_pop\_cmo()}. |
|
|
CMO should be in the binary encoded form to call these functions. |
CMO should be converted into the binary encoded form to call these functions. |
*/ |
*/ |
/*&C |
/*&C |
|
|
Line 30 CMO should be in the binary encoded form to call these |
|
Line 30 CMO should be in the binary encoded form to call these |
|
/*&eg |
/*&eg |
This function initializes the library interface. |
This function initializes the library interface. |
{\tt type} specifies the byte order to send int32 to the OX server xxx. |
{\tt type} specifies the byte order to send int32 to the OX server xxx. |
If type is equal to 0, the network byte order will be used. |
If type is equal to 0, the native byte order will be used. |
If type is equal to 1, the little endian order will be used. |
If type is equal to 1, the network byte order will be used. |
In case of error, -1 will be returned. |
In case of error, -1 will be returned. |
*/ |
*/ |
/*&jp |
/*&jp |
この関数はライブラリインタフェースの初期化を行う. |
∽違ゃゃ潟帥с若鴻茵. |
OX サーバ xxx へ int32 を送るための byte order を type で指定する. |
OX 泣若 xxx int32 byte order type ф絎. |
type = 0 の場合 network byte order が設定される. |
type = 0 翫 native byte order 荐絎. |
type = 1 の場合 little endian order が設定される. |
type = 1 翫 network byte order 荐絎. |
失敗した場合, -1 を戻す. |
紊掩翫, -1 祉. |
*/ |
*/ |
|
|
/*&C |
/*&C |
Line 53 CMO should be in the binary encoded form to call these |
|
Line 53 CMO should be in the binary encoded form to call these |
|
Push the binary encoded CMO {\tt cmo} onto the stack of the OX server xxx. |
Push the binary encoded CMO {\tt cmo} onto the stack of the OX server xxx. |
*/ |
*/ |
/*&jp |
/*&jp |
Binary encoded された CMO を, OX サーバ xxx |
Binary encoded CMO , OX 泣若 xxx |
の stack に push する. |
stack push . |
*/ |
*/ |
/*&C |
/*&C |
|
|
Line 72 If the size exceeds the {\tt limit}, -1 will be return |
|
Line 72 If the size exceeds the {\tt limit}, -1 will be return |
|
and the CMO is not popped and will not be written to {\tt cmo}. |
and the CMO is not popped and will not be written to {\tt cmo}. |
*/ |
*/ |
/*&jp |
/*&jp |
Binary encoded された CMO (サイズは size) を, OX サーバより |
Binary encoded CMO (泣ゃ冴 size) , OX 泣若 |
pop して, cmo に書き込む. |
pop , cmo 吾莨若. |
戻り値は CMO のサイズを byte で戻す. |
祉ゃ CMO 泣ゃ冴 byte ф祉. |
Stack underflow の場合の戻り値は 0 である. |
Stack underflow 翫祉ゃ 0 с. |
ただし, limit より大きいサイズの CMO は書き込まれない. |
, limit 紊с泣ゃ冴 CMO 吾莨若障. |
この場合, 戻り値は -1 となる. |
翫, 祉ゃ -1 . |
*/ |
*/ |
|
|
/*&C |
/*&C |
Line 90 Stack underflow の場合の戻り値は 0 である. |
|
Line 90 Stack underflow の場合の戻り値は 0 である. |
|
/*&eg |
/*&eg |
Return the size of the CMO at the top of the stack. |
Return the size of the CMO at the top of the stack. |
*/ |
*/ |
|
|
/*&C |
|
|
|
\smallskip |
|
\begin{verbatim} |
|
int xxx_ox_peek_cmo_size() |
|
\end{verbatim} |
|
*/ |
|
/*&jp |
/*&jp |
stack の一番上にある CMO のサイズを byte で戻す. |
stack 筝筝 CMO 泣ゃ冴 byte ф祉. |
*/ |
*/ |
|
|
\smallbreak |
\smallbreak |
\begin{verbatim} |
\begin{verbatim} |
void xxx_ox_push_cmd(int cmd) |
void xxx_ox_push_cmd(int cmd) |
\end{verbatim} |
\end{verbatim} |
/*&eg |
/*&eg |
This function sends a stack machine command |
This function sends a stack machine command |
({\tt OX\_COMMAND},int32 cmd) to a server. |
({\tt OX\_COMMAND},int32 cmd) to a server. |
*/ |
*/ |
/*&jp |
/*&jp |
({\tt OX\_COMMAND},int32 cmd) をサーバに送る. |
({\tt OX\_COMMAND},int32 cmd) 泣若. |
*/ |
*/ |
|
|
\begin{verbatim} |
\begin{verbatim} |
void xxx_ox_execute_string(char *s) |
void xxx_ox_execute_string(char *s) |
\end{verbatim} |
\end{verbatim} |
*/ |
|
/*&eg |
/*&eg |
These function requests a server to execute a string {\tt s}. |
This function requests a server to execute a command expressed by |
|
a string {\tt s}. |
{\tt s} should be acceptable by the parser of the server. |
{\tt s} should be acceptable by the parser of the server. |
*/ |
*/ |
/*&jp |
/*&jp |
文字列 {\tt s} をサーバに実行させる. {\tt s} はサーバのパーザ |
絖 {\tt s} 泣若絎茵. {\tt s} 泣若若 |
が受理可能なものでなければならない. |
純с違. |
|
*/ |
|
|
|
//&C |
|
|
|
/*&jp |
|
ゃ≪若泣潟純若鴻 {\tt OpenXM/doc/oxlib} |
|
. |
|
*/ |
|
|
|
/*&eg |
|
Sample source codes to use the library mode interface can be found in |
|
{\tt OpenXM/doc/oxlib}. |
*/ |
*/ |
|
|