| Linkexpress 利用者プログラム開発ガイド |
目次
索引
![]()
|
| 付録A サンプル | > A.1 転送APIのサンプル |
このサンプルプログラムは、以下のファイルに格納されています。
PCサーバ : インストールディレクトリ\sample\api\sndfile3.c
UNIXサーバ : インストールディレクトリ/SAMPLE/api/sndfile3.c
このサンプルプログラムは、突き放し型のSNDFILEを使用してファイル転送を連続して行うものです。プログラムの説明を以下に示します。

Linkexpressに対してSNDFILEの要求を連続して行います。突き放し型で要求しているため、GETINFでファイル転送の完了通知を受け取っています。また、GETINFで完了通知を受け取ったため、TRANCOMPでその旨をLinkexpressに通知しています。
ファイル転送を連続して行うため、上記の一連の処理を再度行っています。
sndfile3.cの内容を以下に示します。
/*
*
* All Rights Reserved Copyright (c) FUJITSU LIMITED 1997-2005
*
*/
/*
* API sample program (init No.3)
*/
/*
* include file
*/
#include <sys/types.h>
#include <string.h>
#include <stdio.h>
#include <lxapi.h>
int
main()
{
unsigned long req_ident;
/*
* sndfile
*/
{
dts_sndfile_dcb_t input_dcb;
dts_inf_transfer_comp_t output_dcb;
password_t password;
/*
* clear parameters
*/
memset( &input_dcb, 0, sizeof(dts_sndfile_dcb_t) );
memset( &output_dcb, 0, sizeof(dts_inf_transfer_comp_t) );
memset( &password, 0, sizeof(password_t) );
input_dcb.req_ident = 0;
input_dcb.req_type = DTS_API_THROW;
input_dcb.appl_name = "@_USRAPL";
input_dcb.system_name = "dest_system";
input_dcb.assoc_cont = DTS_API_CONT;
input_dcb.local_filename = "C:\\test\\api\\a";
input_dcb.local_user = 0;
input_dcb.remote_filename = "C:\\test\\api\\b";
input_dcb.storage_form = DTS_API_REP;
input_dcb.access_password = 0;
input_dcb.data_type = DTS_API_BINARY;
input_dcb.file_attr = 0;
input_dcb.speed = 0;
input_dcb.ret_tid = 0;
input_dcb.protocol_option = 0;
input_dcb.user_id = "linkexp";
input_dcb.password = &password;
password.password_len = 7;
strcpy( password.password, "linkexp" );
input_dcb.group = 0;
sndfile( &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_INIT;
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;
printf("req_ident =%d\n", req_ident );
printf("system_name =%s\n", output_dcb.getinf_data.tcomp.system_name );
printf("flow_kind =%d\n", output_dcb.getinf_data.tcomp.flow_kind );
printf("start_time =%s",
ctime( (time_t *)&output_dcb.getinf_data.tcomp.start_time ) );
printf("comp_time =%s",
ctime( (time_t *)&output_dcb.getinf_data.tcomp.comp_time ) );
printf("trn_comptype =%d\n", output_dcb.getinf_data.tcomp.trn_comptype );
printf("data_size =%d\n", output_dcb.getinf_data.tcomp.data_size );
}
/*
* 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) );
memset( &password, 0, sizeof(password_t) );
input_dcb.appl_name = "@_USRAPL";
input_dcb.req_ident = req_ident;
input_dcb.req_kind = DTS_API_INIT;
trancomp( &input_dcb, &output_dcb );
}
/*
* sndfile
*/
{
dts_sndfile_dcb_t input_dcb;
dts_inf_transfer_comp_t output_dcb;
password_t password;
/*
* clear parameters
*/
memset( &input_dcb, 0, sizeof(dts_sndfile_dcb_t) );
memset( &output_dcb, 0, sizeof(dts_inf_transfer_comp_t) );
input_dcb.req_ident = 0;
input_dcb.req_type = DTS_API_THROW;
input_dcb.appl_name = "@_USRAPL";
input_dcb.system_name = "dest_system";
input_dcb.assoc_cont = DTS_API_CUT;
input_dcb.local_filename = "C:\\test\\api\\a";
input_dcb.local_user = 0;
input_dcb.remote_filename = "C:\\test\\api\\b";
input_dcb.storage_form = DTS_API_REP;
input_dcb.access_password = 0;
input_dcb.data_type = DTS_API_BINARY;
input_dcb.file_attr = 0;
input_dcb.speed = 0;
input_dcb.ret_tid = 0;
input_dcb.protocol_option = 0;
input_dcb.user_id = "linkexp";
input_dcb.password = &password;
password.password_len = 7;
strcpy( password.password, "linkexp" );
input_dcb.group = 0;
sndfile( &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_INIT;
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;
printf("req_ident =%d\n", req_ident );
printf("system_name =%s\n", output_dcb.getinf_data.tcomp.system_name );
printf("flow_kind =%d\n", output_dcb.getinf_data.tcomp.flow_kind );
printf("start_time =%s",
ctime( (time_t *)&output_dcb.getinf_data.tcomp.start_time ) );
printf("comp_time =%s",
ctime( (time_t *)&output_dcb.getinf_data.tcomp.comp_time ) );
printf("trn_comptype =%d\n", output_dcb.getinf_data.tcomp.trn_comptype );
printf("data_size =%d\n", output_dcb.getinf_data.tcomp.data_size );
}
/*
* 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.appl_name = "@_USRAPL";
input_dcb.req_ident = req_ident;
input_dcb.req_kind = DTS_API_INIT;
trancomp( &input_dcb, &output_dcb );
}
return( 0 );
}
参照
lxapi.h、dts_sndfile_dcb_t、dts_inf_transfer_comp_t、dts_getinf_dcb_t、dts_get_information_t、dts_trancomp_dcb_t、dts_diagnostic_t
用語解説
目次
索引
![]()
|