付録C UOCのコーディング例

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);
}