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

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

<この項の構成>
(1) 入力セグメント判定UOC
(2) 入力メッセージ編集UOC
(3) 出力メッセージ編集UOC
(4) 送信メッセージの通番編集UOC
(5) コネクション確立UOC
(6) 受信メッセージ判定UOC

(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;