一部のOX サーバでは C のライブラリとしてリンクして使用するもできる. ライブラリとして使用するための C の関数は Asir の OX サーバ用クライアント関数に似たインタフェースを持つ.
ライブラリ関数には, CMO を binary encoding して渡す. ライブラリ関数からは, CMO が binary encoded form で戻る.
int xxx_ox_init(int type)
この関数はライブラリインタフェースの初期化を行う. OX サーバ xxx へ int32 を送るための byte order を type で指定する. type = 0 の場合 native byte order が設定される. type = 1 の場合 network byte order が設定される. 失敗した場合, -1 を戻す.
void xxx_ox_push_cmo(void *cmo)
Binary encoded された CMO を, OX サーバ xxx の stack に push する.
int xxx_ox_pop_cmo(void cmo, int limit)
Binary encoded された CMO (サイズは size) を, OX サーバより pop して, cmo に書き込む. 戻り値は CMO のサイズを byte で戻す. Stack underflow の場合の戻り値は 0 である. ただし, limit より大きいサイズの CMO は書き込まれない. この場合, 戻り値は -1 となる.
int xxx_ox_peek_cmo_size()
stack の一番上にある CMO のサイズを byte で戻す.
void xxx_ox_push_cmd(int cmd)
(OX_COMMAND,int32 cmd) をサーバに送る.
void xxx_ox_execute_string(char *s)
文字列 s をサーバに実行させる. s はサーバのパーザ が受理可能なものでなければならない.
ライブラリモードのサンプルソースは OpenXM/doc/oxlib にある.