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

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

5.1.14 受信メッセージの保留判定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 msghld_uoc(dctcp_uoc_msghld *parm)
 
 K&R版 Cの場合
 
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG    msghld_uoc(parm)
 
dctcp_uoc_msghld *parm;

(2) 説明

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

(3) パラメタの内容

(a) dctcp_uoc_msghldの内容
 
typedef struct {
    DCLONG pro_kind;           …プロトコル種別
    char cn_name[9];           …コネクションID
    char reserve1[7];          …予備
    char le_name[9];           …論理端末名称
    char reserve2[7];          …予備
    char reserve3[4];          …予備
    char *rcv_data_adr;        …受信メッセージ格納アドレス
    DCLONG rcv_data_size;      …受信メッセージ長
    DCLONG msg_hld;            …受信メッセージの保留要否
    DCLONG rtn_detail;         …詳細リターンコード
    char reserve4[20];         …予備
}dctcp_uoc_msghld;

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

(a) dctcp_uoc_msghld

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

(a) dctcp_uoc_msghld

(6) リターン値

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

リターン値 意味
DCTCP_UOC_MH_OK 正常リターン
DCTCP_UOC_MH_NG エラーリターン

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

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

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