Linkexpress 利用者プログラム開発ガイド |
目次
索引
![]() ![]() |
付録A サンプル | > A.1 転送APIのサンプル |
このサンプルプログラムは、以下のファイルに格納されています。
PCサーバ : インストールディレクトリ\sample\api\respapl1.c
UNIXサーバ : インストールディレクトリ/SAMPLE/api/respapl1.c
このサンプルプログラムは、相手システムからのファイル転送要求に対する応答を行うものです。プログラムの説明を以下に示します。
1つ目のGETINFでファイル転送の開始通知を受け取り、その内容に対する応答をFTRNRSPで返しています。このサンプルプログラムの場合は、指定された内容で応答しています。
2つ目のGETINFでファイル転送の完了通知を受け取り、TRANCOMPでその旨をLinkexpressに通知しています。
respapl1.cの内容を以下に示します。
/* * * All Rights Reserved Copyright (c) FUJITSU LIMITED 1997-2005 * */ /* * API sample program (resp) */ /* * include file */ #include <sys/types.h> #include <string.h> #include <stdio.h> #include <fcntl.h> #include <lxapi.h> int main() { unsigned long req_ident; FILE *ofp; /* * getinf */ { dts_getinf_dcb_t input_dcb; dts_get_information_t output_dcb; /* * clear parameters */ memset( &input_dcb, 0, sizeof(dts_getinf_dcb_t) ); memset( &output_dcb, 0, sizeof(dts_get_information_t) ); input_dcb.appl_name = "@_USRAPL"; input_dcb.req_kind = DTS_API_RESP; input_dcb.info_kind = DTS_API_START_INFO; input_dcb.timer = 0; input_dcb.path_name = 0; getinf( &input_dcb, &output_dcb ); req_ident = output_dcb.getinf_data.tstart.req_ident; ofp = fopen("C:\\test\\api\\resp1.txt", "a"); (void)fprintf(ofp, "getinf\n"); (void)fprintf(ofp, "req_ident = %d\n", req_ident); (void)fprintf(ofp, "service_kind = %d\n", output_dcb.service_kind); (void)fprintf(ofp, "system_name = %s\n", output_dcb.getinf_data.tstart.system_name); (void)fprintf(ofp, "path_name = %s\n", output_dcb.getinf_data.tstart.path_name); (void)fprintf(ofp, "flow_kind = %d\n", output_dcb.getinf_data.tstart.flow_kind); (void)fprintf(ofp, "file_name = %s\n", output_dcb.getinf_data.tstart.file_name); (void)fprintf(ofp, "strage_form =%d\n", output_dcb.getinf_data.tstart.storage_form); (void)fprintf(ofp, "data_type = %d\n", output_dcb.getinf_data.tstart.data_type); (void)fprintf(ofp, "file_attr format = %d\n", output_dcb.getinf_data.tstart.file_attr.rec_format); (void)fprintf(ofp, "file_attr len = %d\n", output_dcb.getinf_data.tstart.file_attr.rec_len); (void)fprintf(ofp, "\n"); (void)fflush(ofp); (void)fclose(ofp); } /* * ftrnrsp */ { dts_ftrnrsp_dcb_t input_dcb; dts_diagnostic_t output_dcb; /* * clear parameters */ memset( &input_dcb, 0, sizeof(dts_ftrnrsp_dcb_t) ); memset( &output_dcb, 0, sizeof(dts_diagnostic_t) ); input_dcb.req_ident = req_ident; input_dcb.appl_name = "@_USRAPL"; input_dcb.attest_code = DTS_API_OK; input_dcb.error_detail = 0; input_dcb.local_user = 0; input_dcb.file_name = 0; input_dcb.file_attr = 0; input_dcb.data_type = 0; input_dcb.speed = 0; input_dcb.ret_tid = 0; ftrnrsp( &input_dcb, &output_dcb ); } /* * getinf */ { dts_getinf_dcb_t input_dcb; dts_get_information_t output_dcb; /* * clear parameters */ memset( &input_dcb, 0, sizeof(dts_getinf_dcb_t) ); memset( &output_dcb, 0, sizeof(dts_get_information_t) ); input_dcb.appl_name = "@_USRAPL"; input_dcb.req_kind = DTS_API_RESP; input_dcb.info_kind = DTS_API_END_INFO; input_dcb.timer = 0; input_dcb.path_name = 0; getinf( &input_dcb, &output_dcb ); req_ident = output_dcb.getinf_data.tcomp.req_ident; } /* * trancomp */ { dts_trancomp_dcb_t input_dcb; dts_diagnostic_t output_dcb; /* * clear parameters */ memset( &input_dcb, 0, sizeof(dts_trancomp_dcb_t) ); memset( &output_dcb, 0, sizeof(dts_diagnostic_t) ); input_dcb.req_ident = req_ident; input_dcb.appl_name = "@_USRAPL"; input_dcb.req_kind = DTS_API_RESP; input_dcb.appl_cont = DTS_API_APLCUT; trancomp( &input_dcb, &output_dcb ); } return( 1 ); }
参照
lxapi.h、dts_getinf_dcb_t、dts_get_information_t、dts_ftrnrsp_dcb_t、dts_trancomp_dcb_t、dts_diagnostic_t
用語解説
目次
索引
![]() ![]() |