Hitachi

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


付録C.5 ユーザアプリケーションプログラムの作成例

ユーザアプリケーションプログラムの作成例の変更一覧を示します。

〈この項の構成〉

(1) バージョン6以前

/********************************************************/
/*    C言語を使用したUAP作成例                        */
/********************************************************/
#include <dcmcf.h>
 
void ex_uap1()
{
    char termnam[9];
    long rdataleng;
    long time;
    struct{
        char mcfctl[8];
        long msglen;
        char recvdata[2036];
    }recvmsg;
    struct{
        char mcfctl[8];
        long msglen;
        char senddata1[500];
    }sendmsg;
    char senddata2[512];
    static char resv01[9] = "\0" ;  /*** 予備領域の初期化 ***/
    static char resv02[9] = "\0" ;  /*** 予備領域の初期化 ***/
    static char resv03[9] = "\0" ;  /*** 予備領域の初期化 ***/
    char *workadd = (char *)&recvmsg;
 
    dc_mcf_receive(DCMCFFRST,DCNOFLAGS,termnam,resv01,
                   workadd,&rdataleng,2048,&time) ;
                                 /* 一方送信メッセージの受信 */
    /***************************************/
    /*********   データの処理   ************/
    /***************************************/
 
    dc_mcf_send(DCMCFEMI,DCMCFOUT,"PRINTER1",resv01,
                senddata2,504,resv02,DCNOFLAGS);
                                 /* 一方送信メッセージの送信 */
    sendmsg.msglen = 504;       /* セグメント長の設定 */
    dc_mcf_send(DCMCFEMI,DCMCFOUT,"TERMNAM1",resv01,
                (char *)&sendmsg,504,resv02,DCNOFLAGS);
/* メッセージの送信 */
}
/********   C言語によるUAP 終わり   ********/

(2) バージョン7

/********************************************************/
/*    C言語を使用したUAP作成例                             */
/********************************************************/
#include <dcmcf.h>
 
void ex_uap1()
{
    char termnam[9];
    DCLONG rdataleng;
    DCLONG time;
    struct{
        char mcfctl[8];
        DCLONG msglen;
        char recvdata[2036];
    }recvmsg;
    struct{
        char mcfctl[8];
        DCLONG msglen;
        char senddata1[500];
    }sendmsg;
    char senddata2[512];
    static char resv01[9] = "\0" ;  /*** 予備領域の初期化 ***/
    static char resv02[9] = "\0" ;  /*** 予備領域の初期化 ***/
    static char resv03[9] = "\0" ;  /*** 予備領域の初期化 ***/
    char *workadd = (char *)&recvmsg;
 
    dc_mcf_receive(DCMCFFRST,DCNOFLAGS,termnam,resv01,
                   workadd,&rdataleng,2048,&time) ;
                                 /* 一方送信メッセージの受信 */
    /***************************************/
    /*********   データの処理     ************/
    /***************************************/
 
    dc_mcf_send(DCMCFEMI,DCMCFOUT,"PRINTER1",resv01,
                senddata2,504,resv02,DCNOFLAGS);
                                 /* 一方送信メッセージの送信 */
    sendmsg.msglen = 504;       /* セグメント長の設定 */
    dc_mcf_send(DCMCFEMI,DCMCFOUT,"TERMNAM1",resv01,
                (char *)&sendmsg,504,resv02,DCNOFLAGS);
/* メッセージの送信 */
}
/********   C言語によるUAP 終わり   ********/