next up previous
Next: モジュール irpr_kappa(irpr_kappa.kl1) Up: モジュール irpr_service(irpr_service.kl1) Previous: 名簿管理システムサーバの生成

名簿管理システムサーバへのメッセージ送信

irpr_clientのコマンドパラメタを、名簿管理システムサーバへの メッセージに変換して、インターフェースストリームIrprITRを介して送る。 これらのメッセージの実行内容は、irpr_kappa.kl1で定義されている。

引数の意味は順に次の通り。

Mode
irpr_clientのコマンドパラメタをアトム化したもの
Search_cond
irpr_clientの標準入力をまとめてストリング化した もの
Result
irpr_clientの標準出力に書き出すものを指定する。 vls(VLS), vl(VL), term(Term)の3種類の出力方法がある。

exec_irpr(scd, Search_cond, Result)-IrprITR :-
    IrprITR <= search_current_data(Search_cond, Result0),
    Result = vls(Result0).
exec_irpr(shd, Search_cond, Result)-IrprITR :-
    IrprITR <= search_history_data(Search_cond, Result0),
    Result = vls(Result0).
exec_irpr(sad, Search_cond, Result)-IrprITR :-
    IrprITR <= search_all_data(Search_cond, Result0),
    Result = vls(Result0).
exec_irpr(anm, Search_cond, Result)-IrprITR :-
    IrprITR <= add_new_member(Search_cond, Result0),
    Result = vl(Result0).
exec_irpr(mm, Search_cond, Result)-IrprITR :-
    IrprITR <= modify_member(Search_cond, Result0),
    Result = vl(Result0).
exec_irpr(dm, Search_cond, Result)-IrprITR :-
    IrprITR <= delete_member(Search_cond, Result0),
    Result = term(Result0).
otherwise.
exec_irpr(Mode, _Search_cond, Result)-IrprITR :-
    Result = term(abnormal("Illegal Parameter.",Mode)).

引数Resultの出力方法について補足する。

vls(VLS)
irpr_kappa:read_record/5の要求駆動のため、 出力が終了する毎にVLSがリストにユニファイされる。
irpr_clientの標準出力には、normal([...])の形式で出力される。
vl(VL)
VLは結果のタームで、irpr_clientの標準出力には normal(VL)の形式で出力される。
term(Term)
Termは結果のタームで、irpr_clientの標準出力には Termの形式で出力される。