Hitachi

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


付録C.2 ユーザオウンコーディング

ここでは,ユーザオウンコーディングの変更一覧を示します。

〈この項の構成〉

(1) 入力セグメント判定UOC

(a) 形式

ANSI C,C++の形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
long uoc_func(dctcp_uoc_sgck *parm)
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG uoc_func(dctcp_uoc_sgck *parm)

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
int uoc_func(dctcp_uoc_sgck *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
long    uoc_func(parm)
 
dctcp_uoc_sgck *parm ;
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG    uoc_func(parm)
 
dctcp_uoc_sgck *parm ;

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
int    uoc_func(parm)
 
dctcp_uoc_sgck *parm ;

(b) パラメタの内容

dctcp_uoc_sgckの内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    long pro_kind;
    char le_name[9];
    char reserve1[7];
    long rcv_prim;
    char *rcv_data_adr;
    long rcv_data_size;
    char *uoc_inf_adr;
    long uoc_inf_size;
    dctcp_sguoc_prot *pro_indv_ifa;
    dctcp_uoctimer_inf *ptimerinf_adr; 
    long rtn_detail;
 
    long reserve2[2];
} dctcp_uoc_sgck;
typedef struct {
    DCLONG pro_kind;
    char le_name[9];
    char reserve1[7];
    DCLONG rcv_prim;
    char *rcv_data_adr;
    DCLONG rcv_data_size;
    char *uoc_inf_adr;
    DCLONG uoc_inf_size;
    dctcp_sguoc_prot *pro_indv_ifa;
    dctcp_uoctimer_inf *ptimerinf_adr;
    DCLONG rtn_detail;
    DCLONG rcv_buf_size;
    DCLONG reserve2[1];
} dctcp_uoc_sgck;

<64ビットアーキテクチャの場合>

typedef struct {
    int pro_kind;
    char le_name[9];
    char reserve1[7];
    int rcv_prim;
    char *rcv_data_adr;
    int rcv_data_size;
    char *uoc_inf_adr;
    int uoc_inf_size;
    dctcp_sguoc_prot *pro_indv_ifa;
    dctcp_uoctimer_inf *ptimerinf_adr;
    int rtn_detail;
 
    int reserve2[2];
} dctcp_uoc_sgck;

dctcp_uoctimer_inf(タイマ情報),dctcp_sguoc_prot(領域アドレス)の内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    long timer_code;
    long timer_value;
    long timer_result;
    long reserve1[2];
} dctcp_uoctimer_inf;
 
typedef struct {
    long rest_data_size;
    long next_data_size;
    char *next_data_adr;
    long now_data_size;
    long reserve[2];
} dctcp_sguoc_prot;
typedef struct {
    DCLONG timer_code;
    DCLONG timer_value;
    DCLONG timer_result;
    DCLONG reserve1[2];
} dctcp_uoctimer_inf;
 
typedef struct {
    DCLONG rest_data_size;
    DCLONG next_data_size;
    char *next_data_adr;
    DCLONG now_data_size;
    DCLONG reserve[2];
} dctcp_sguoc_prot;

<64ビットアーキテクチャの場合>

typedef struct {
    int timer_code;
    int timer_value;
    int timer_result;
    int reserve1[2];
} dctcp_uoctimer_inf;
 
typedef struct {
    int rest_data_size;
    int next_data_size;
    char *next_data_adr;
    int now_data_size;
    int reserve[2];
} dctcp_sguoc_prot;

(2) 入力メッセージ編集UOC

(a) 形式

ANSI C,C++の形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
long  uoc_func(dcmcf_uoc_min_n *parm)
#include <dcmcf.h>
#include <dcmcfuoc.h>
DCLONG  uoc_func(dcmcf_uoc_min_n *parm)

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
int  uoc_func(dcmcf_uoc_min_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
long    uoc_func(parm)
 
dcmcf_uoc_min_n   *parm ;
#include <dcmcf.h>
#include <dcmcfuoc.h>
DCLONG    uoc_func(parm)
 
dcmcf_uoc_min_n   *parm ;

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
int    uoc_func(parm)
 
dcmcf_uoc_min_n   *parm ;

(b) パラメタの内容

dcmcf_uoc_min_nの内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    long pro_kind;
    char le_name[9];
    char reserve1[7];
    long rcv_prim;
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    char aplname[9];
    char reserve2[7];
    char *pro_indv_ifa;
    long rtn_detail;
    char reserve3[8];
} dcmcf_uoc_min_n;
typedef struct {
    DCLONG pro_kind;
    char le_name[9];
    char reserve1[7];
    DCLONG rcv_prim;
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    char aplname[9];
    char reserve2[7];
    char *pro_indv_ifa;
    DCLONG rtn_detail;
    char reserve3[8];
} dcmcf_uoc_min_n;

<64ビットアーキテクチャの場合>

typedef struct {
    int pro_kind;
    char le_name[9];
    char reserve1[7];
    int rcv_prim;
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    char aplname[9];
    char reserve2[7];
    char *pro_indv_ifa;
    int rtn_detail;
    char reserve3[8];
} dcmcf_uoc_min_n;

dcmcf_uocbuff_list_n(バッファリスト)の内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    long buf_num;
    long used_buf_num;
    char reserve1[8];
    dcmcf_uocbufinf_n 
        buf_array[DCMCF_UOC_BUFF_MAX];
} dcmcf_uocbuff_list_n;
typedef struct {
    DCLONG buf_num;
    DCLONG used_buf_num;
    char reserve1[8];
    dcmcf_uocbufinf_n 
        buf_array[DCMCF_UOC_BUFF_MAX];
} dcmcf_uocbuff_list_n;

<64ビットアーキテクチャの場合>

typedef struct {
    int buf_num;
    int used_buf_num;
    char reserve1[8];
    dcmcf_uocbufinf_n 
        buf_array[DCMCF_UOC_BUFF_MAX];
} dcmcf_uocbuff_list_n;

dcmcf_uocbufinf_n(バッファ情報)の内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    char *buf_adr;
    unsigned long buf_size;
    unsigned long seg_size;
    char reserve1[4];
    dcmcfuoc_w_type buff_id;
    long buff_addr;
    char reserve2[4];
} dcmcf_uocbufinf_n;
typedef struct {
    char *buf_adr;
    DCULONG buf_size;
    DCULONG seg_size;
    char reserve1[4];
    dcmcfuoc_w_type buff_id;
    DCMLONG buff_addr;
    char reserve2[4];
} dcmcf_uocbufinf_n;

<64ビットアーキテクチャの場合>

typedef struct {
    char *buf_adr;
    unsigned int buf_size;
    unsigned int seg_size;
    char reserve1[4];
    dcmcfuoc_w_type buff_id;
    char *buff_addr;
    char reserve2[4];
} dcmcf_uocbufinf_n;

(3) 出力メッセージ編集UOC

(a) 形式

ANSI C,C++の形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
long  uoc_func(dcmcf_uoc_mout_n *parm)
#include <dcmcf.h>
#include <dcmcfuoc.h>
DCLONG  uoc_func(dcmcf_uoc_mout_n *parm)

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
int  uoc_func(dcmcf_uoc_mout_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
long  uoc_func(parm)
 
dcmcf_uoc_mout_n *parm ;
#include <dcmcf.h>
#include <dcmcfuoc.h>
DCLONG  uoc_func(parm)
 
dcmcf_uoc_mout_n *parm ;

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
int  uoc_func(parm)
 
dcmcf_uoc_mout_n *parm ;

(b) パラメタの内容

dcmcf_uoc_mout_nの内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    long pro_kind;
    char le_name[9];
    char reserve1[7];
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    long output_no;
    char msg_type;
    char outputno_flag;
    char resend_flag;
    char reserve2[1];
    char *pro_indv_ifa;
    long rtn_detail;
    char reserve3[20];
} dcmcf_uoc_mout_n;
typedef struct {
    DCLONG pro_kind;
    char le_name[9];
    char reserve1[7];
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    DCLONG output_no;
    char msg_type;
    char outputno_flag;
    char resend_flag;
    char reserve2[1];
    char *pro_indv_ifa;
    DCLONG rtn_detail;
    char reserve3[20];
} dcmcf_uoc_mout_n;

<64ビットアーキテクチャの場合>

typedef struct {
    int pro_kind;
    char le_name[9];
    char reserve1[7];
    dcmcf_uocbuff_list_n *buflist_adr;
    dcmcf_uocbuff_list_n *ebuflist_adr;
    int output_no;
    char msg_type;
    char outputno_flag;
    char resend_flag;
    char reserve2[1];
    char *pro_indv_ifa;
    int rtn_detail;
    char reserve3[20];
} dcmcf_uoc_mout_n;

dcmcf_uocbuff_list_n(バッファリスト),dcmcf_uocbufinf_n(バッファ情報)の内容

入力メッセージ編集UOCのパラメタの内容と同じです。「付録C.2(2)(b) パラメタの内容」を参照してください。

(4) 送信メッセージの通番編集UOC

(a) 形式

ANSI C,C++の形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
long send_uoc(long flags,
                char *termname,
                long sendno,
                long sendid,
                long dataleng,
                char *senddata)
#include <dcmcf.h>
DCLONG send_uoc(DCLONG flags,
                  char *termname,
                  DCLONG sendno,
                  DCLONG sendid,
                  DCLONG dataleng,
                  char *senddata)

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
int send_uoc(int flags,
               char *termname,
               int sendno,
               int sendid,
               int dataleng,
               char *senddata)

K&R版 Cの形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
 long send_uoc(flags,
                termname,
                sendno,
                sendid,
                dataleng,
                senddata)
 long    flags;
 char    *termname;
 long    sendno;
 long    sendid;
 long    dataleng;
 char    *senddata;
#include <dcmcf.h>
 DCLONG send_uoc(flags,
                  termname,
                  sendno,
                  sendid,
                  dataleng,
                  senddata)
 DCLONG    flags;
 char      *termname;
 DCLONG    sendno;
 DCLONG    sendid;
 DCLONG    dataleng;
 char      *senddata;

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
 int send_uoc(flags,
               termname,
               sendno,
               sendid,
               dataleng,
               senddata)
 int     flags;
 char    *termname;
 int     sendno;
 int     sendid;
 int     dataleng;
 char    *senddata;

(5) コネクション確立UOC

(a) 形式

ANSI C,C++の形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
long con_uoc(dcmtcp_uoc_con_n *parm)
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG con_uoc(dcmtcp_uoc_con_n *parm)

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
int con_uoc(dcmtcp_uoc_con_n *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
long con_uoc(parm)
 
dcmtcp_uoc_con_n *parm;
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG con_uoc(parm)
 
dcmtcp_uoc_con_n *parm;

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
int con_uoc(parm)
 
dcmtcp_uoc_con_n *parm;

(b) パラメタの内容

dcmtcp_uoc_con_nの内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct{
    char  cn_name[9];
    char  reserve[7];
    dcmtcp_cnuoc_oaddr *oaddr;
    unsigned short  oportno;
    unsigned short  iportno;
    long  connect_permit;
    long  reject_reason;
    long  rtn_detail;
}dcmtcp_uoc_con_n;
typedef struct{
    char  cn_name[9];
    char  reserve[7];
    dcmtcp_cnuoc_oaddr *oaddr;
    unsigned short  oportno;
    unsigned short  iportno;
    DCLONG  connect_permit;
    DCLONG  reject_reason;
    DCLONG  rtn_detail;
}dcmtcp_uoc_con_n;

<64ビットアーキテクチャの場合>

typedef struct{
    char  cn_name[9];
    char  reserve[7];
    dcmtcp_cnuoc_oaddr *oaddr;
    unsigned short  oportno;
    unsigned short  iportno;
    int  connect_permit;
    int  reject_reason;
    int  rtn_detail;
}dcmtcp_uoc_con_n;

dcmtcp_cnuoc_oaddr(相手システムのアドレス情報)の内容

バージョン6以前とバージョン7で,差異はありません。

(6) 受信メッセージ判定UOC

(a) 形式

ANSI C,C++の形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
long msgrep_uoc(dctcp_uoc_msgrep *parm)
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG msgrep_uoc(dctcp_uoc_msgrep *parm)

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
int msgrep_uoc(dctcp_uoc_msgrep *parm)

K&R版 Cの形式

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
long    msgrep_uoc(parm)
 
dctcp_uoc_msgrep *parm;
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG    msgrep_uoc(parm)
 
dctcp_uoc_msgrep *parm;

<64ビットアーキテクチャの場合>

#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
int    msgrep_uoc(parm)
 
dctcp_uoc_msgrep *parm;

(b) パラメタの内容

dctcp_uoc_msgrepの内容

バージョン6以前

バージョン7

<32ビットアーキテクチャの場合>

typedef struct {
    long pro_kind;
    char cn_name[9];
    char reserve1[7];
    char le_name[9];
    char reserve2[7];
    long snd_status;
    char *rcv_data_adr;
    long rcv_data_size;
    long msg_type;
    long reason;
    long msg_reply;
    char *snd_data_adr;
    long snd_buff_size;
    long snd_data_size;
    long snd_cont;
    long rtn_detail;
    char reserve3[16];
}dctcp_uoc_msgrep;
typedef struct {
    DCLONG pro_kind;
    char cn_name[9];
    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;

<64ビットアーキテクチャの場合>

typedef struct {
    int pro_kind;
    char cn_name[9];
    char reserve1[7];
    char le_name[9];
    char reserve2[7];
    int snd_status;
    char *rcv_data_adr;
    int rcv_data_size;
    int msg_type;
    int reason;
    int msg_reply;
    char *snd_data_adr;
    int snd_buff_size;
    int snd_data_size;
    int snd_cont;
    int rtn_detail;
    char reserve3[16];
}dctcp_uoc_msgrep;