5.1.5 送信メッセージの通番編集
送信メッセージの通番編集UOCでは,受け取った出力通番を基に,ユーザ独自の処理ができます。例えば,出力通番を使用して送信メッセージを編集できます。
送信メッセージの通番編集UOCを起動する場合,メッセージ送信の関数で出力通番を付けるように設定してください。UOCは,UAPが先頭セグメントを送信するsend関数またはresend関数を呼び出したときに,MCFによって起動されます。したがって,このUOCでメッセージを編集する場合,先頭セグメントしか編集できません。
- 〈この項の構成〉
(1) OpenTP1への組み込み方法
UAPのメイン関数の中に,送信メッセージの通番編集UOCの関数アドレスを登録しておきます。UAPのメイン関数に登録するdc_mcf_regster関数の形式を次に示します。
(a) 形式
- ANSI C,C++の場合
#include<dcmcf.h> int dc_mcf_regster(DCLONG flags, DCLONG (*uoc_addr)(DCLONG flags, char *termname, DCLONG sendno, DCLONG sendid,DCLONG dataleng, char *senddata))
- K&R版Cの場合
#include<dcmcf.h> int dc_mcf_regster(flags, uoc_addr) DCLONG flags; DCLONG (*uoc_addr)();
(b) ユーザが値を設定する引数
-
flags
DCMCF_SEND_UOCを設定します。
-
uoc_addr
flagsに対応するUOCのアドレスを設定します。
(c) リターン値
リターン値 |
意味 |
---|---|
DC_OK |
正常に終了しました。 |
DCMCFER_INVALID_ARGS |
引数の指定が間違っています。 |
DCMCFER_NOMEM |
ローカルメモリが不足しました。 |
(d) メイン関数への登録例
-
MHPの場合
main() { extern DCLONG send_uoc(); dc_rpc_open(); dc_mcf_open(); dc_mcf_regster(DCMCF_SEND_UOC, send_uoc); dc_mcf_mainloop(); dc_mcf_close(); dc_rpc_close(); }
-
SPPの場合
main() { extern DCLONG send_uoc(); dc_rpc_open(); dc_mcf_open(); dc_mcf_regster(DCMCF_SEND_UOC,send_uoc); dc_rpc_mainloop(); dc_mcf_close(); dc_rpc_close(); }