分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/TCP/IP編

[目次][用語][索引][前へ][次へ]

5.1.12 受信メッセージ判定UOCインタフェース

受信メッセージ判定UOCは,次に示す形式で呼び出します。なお,UOCの関数名称はユーザの任意です。

<この項の構成>
(1) 形式
(2) 説明
(3) パラメタの内容
(4) MCFが値を設定する項目
(5) ユーザが値を設定する項目
(6) リターン値
(7) MCFメイン関数のコーディング例

(1) 形式

 ANSI C,C++の場合
 
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG msgrep_uoc(dctcp_uoc_msgrep *parm)
 
 K&R版 Cの場合
 
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG    msgrep_uoc(parm)
 
dctcp_uoc_msgrep *parm;

(2) 説明

msgrep_uoc(受信メッセージ判定UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。

(3) パラメタの内容

(a) dctcp_uoc_msgrepの内容
 
typedef struct {
    DCLONG pro_kind;           …プロトコル種別
    char cn_name[9];           …コネクションID
    char reserve1[7];          …予備
    char le_name[9];           …論理端末名称
    char reserve2[7];          …予備
    DCLONG snd_status;         …送信状態
    char *rcv_data_adr;        …受信メッセージ格納アドレス
    DCLONG rcv_data_size;      …受信メッセージ長
    DCLONG msg_type;           …メッセージ種別
    DCLONG reason;             …理由コード
    DCLONG msg_reply;          …送達確認メッセージの送信要否
    char *snd_data_adr;        …送達確認メッセージ格納アドレス
    DCLONG snd_buff_size;      …送達確認メッセージ格納バッファサイズ
    DCLONG snd_data_size;      …送達確認メッセージ長
    DCLONG snd_cont;           …送信処理の継続可否
    DCLONG rtn_detail;         …詳細リターンコード
    char reserve3[16];         …予備
}dctcp_uoc_msgrep;
 

(4) MCFが値を設定する項目

(a) dctcp_uoc_msgrep

(5) ユーザが値を設定する項目

(a) dctcp_uoc_msgrep

(6) リターン値

msgrep_uoc()は次のコードでリターンしてください。

リターン値 意味
DCTCP_UOC_MR_OK 正常リターン
DCTCP_UOC_MR_NG エラーリターン

(7) MCFメイン関数のコーディング例

受信メッセージ判定UOCをメイン関数に登録する場合のコーディング例を次に示します。

ANSI C,C++の場合
 
#include  <dcmtcp.h>
#include  <dcmtcpu.h>
 
extern DCLONG   msgrep_uoc(dctcp_uoc_msgrep *);  /* 受信メッセージ判定UOC */
extern dcmcf_uoc_t dcmcf_uoctbl;   /* UOCテーブルextern宣言 */
 
int main()
{
    dcmcf_uoctbl.msgrep            /* 受信メッセージ判定 UOC */
   = (dcmcf_uocfunc)msgrep_uoc;    /*           アドレス設定  */
    dc_mcf_svstart();
    return 0;
}
 
K&R版 Cの場合
 
#include  <dcmtcp.h>
extern DCLONG        msgrep_uoc(); /* 受信メッセージ判定 UOC    */
extern dcmcf_uoc_t dcmcf_uoctbl;   /* UOC テーブルextern宣言   */
 
main()
{
    dcmcf_uoctbl.msgrep = msgrep_uoc; /* 受信メッセージ判定 UOC  */
                                    /*         アドレス設定    */
    dc_mcf_svstart();
}