分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/OSAS-NIF編
TP1/NET/OSAS-NIFの入力メッセージ編集UOCのコーディング例(K&R版 C)を次に示します。このコーディング例は,/BeTRAN/examples/mcf/OSASNIF/cmlib/c/uoc.cのファイルで提供しています。
#include <stdio.h> #include <dcmcf.h> #include <dcmnom.h> #include <dcmcfuoc.h> #define ERR_PRT_KIND -19001L DCLONG dc_mcf_stduoc_msgin(param) /* ADDRESS OF EDITING AREA FOR INPUT MESSAGE EDITING UOC */ dcmcf_uoc_min_n *param ; { /*******************************/ /* DECLARATION OF ARGUMENT */ /*******************************/ dcmnom_uoc *ifa_ptr ; /* POINTER OF PROTOCOL INDIVIDUAL INTERFACE */ DCLONG n ; if(param->pro_kind != DCMCF_UOC_PRO_NF){ /* CHECK OF PROTOCOL KIND */ param->rtn_detail=ERR_PRT_KIND; return(DCMCF_UOC_MSG_NG); /* MESSAGE EDITING ERROR */ } ifa_ptr = (dcmnom_uoc *)param->pro_indv_ifa ; /* POINTER AQUISITION OF PROTOCOL INDIVIDUAL AREA BY CASTING */ if(ifa_ptr->appname[0] != 0){ strcpy(param->aplname,ifa_ptr->appname); } else{ param->aplname[8] = 0 ; for(n = 0 ; n < 9 ; n++){ /* NULL TERMINATING IF SPACE, AND MAKING NORMAL DECISION OF AP NAME */ if(param->buflist_adr->buf_array[0].buf_adr[n] == ' '){ param->aplname[n] = 0 ; break; } param->aplname[n] = param->buflist_adr->buf_array[0].buf_adr[n] ; } } param->buflist_adr->used_buf_num = param->buflist_adr->buf_num ; return(DCMCF_UOC_MSG_OK_RCV); }
All Rights Reserved. Copyright (C) 2009, Hitachi, Ltd.