next up previous
Next: 参考文献 Up: Open XM の設計と実装 Previous: OpenXM プロジェクトに参加するには?

OX サーバに対する C ライブラリインタフェース

一部の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 はサーバのパーザ が受理可能なものでなければならない.



Nobuki Takayama 平成12年4月13日