You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
4.2 KiB
C

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/****************************************************************************/
/* Copyright (c) 2007,许继集团有限公司 */
/* All rights reserved. */
/* */
/* 模块描述: */
/** 文件服务模块
* @file ac_file.h */
/* */
/* 日期 作者 注释 */
/* 2007/10/09 ljg 创建文件 */
/****************************************************************************/
#ifndef IEC61850_AC_FILE_H
#define IEC61850_AC_FILE_H
#include "glbtypes.h"
#include "gen_list.h"
#include "ac_reqm.h"
#ifdef __cplusplus
extern "C" {
#endif
/** 读文件服务请求所需信息结构定义*/
typedef struct
{
ST_CHAR *src_fname; /**< 读取的远方服务器中的文件名,可带路径 */
ST_CHAR *dest_fname; /**< 存到本地时用的名字 */
U_AC_REQ_DONE u_getf_done; /**< 用户回调 */
}AC_GETF_REQ_INFO;
/** 写文件服务请求所需信息结构定义*/
typedef struct
{
ST_CHAR *src_fname; /**< 本地文件系统中要写到服务器的文件,可带路径 */
ST_CHAR *dest_fname; /**< 存到服务器文件系统中用的名字 */
U_AC_REQ_DONE u_setf_done; /**< 用户回调 */
}AC_SETF_REQ_INFO;
/** 获得文件列表服务请求所需信息结构定义*/
typedef struct
{
ST_CHAR *file_name; /**< 请求的文件名或目录名 */
U_AC_REQ_DONE u_getf_done; /**< 用户回调 */
}AC_GETFAV_REQ_INFO;
/** 删除文件服务请求所需信息结构定义*/
typedef struct
{
ST_CHAR *file_name; /**< 要删除的服务器的文件,可带路径 */
U_AC_REQ_DONE u_getf_done; /**< 用户回调 */
}AC_DELF_REQ_INFO;
/**
* 从服务器读取一个文件存到本地
* @param srv_id 服务器id
* @param src_fname 读取的文件名,可带路径
* @param dest_fname 存到本地时用的名字
* @param time_out 请求超时时间如果time_out时间内文件没有传完则认为请求失败
* @param req_ctrl_out 传出的请求控制结构
*/
ST_RET ac_get_file(ST_INT srv_id, AC_GETF_REQ_INFO *getf_info,
ST_INT time_out, AC_REQ_CTRL **req_ctrl_out);
/**
* 发送读文件服务接口,请求已从链表中取出
* @param req_ctrl 请求结构
* @retval SD_SUCCESS 发送成功
* @retval SD_FAILURE 发送失败
*/
ST_RET ac_send_getfile_req(AC_REQ_CTRL * req_ctrl );
/**
* 将本地的一个文件写到服务器中
* @param srv_id 服务器id
* @param setf_info 写文件请求信息
* @param time_out 请求超时时间如果time_out时间内文件没有传完则认为请求失败
* @param req_ctrl_out 传出的请求控制结构
*/
ST_RET ac_set_file(ST_INT srv_id, AC_SETF_REQ_INFO *setf_info,
ST_INT time_out, AC_REQ_CTRL **req_ctrl_out);
/**
* 发送写文件服务接口,请求已从链表中取出
* @param req_ctrl 请求结构
* @retval SD_SUCCESS 发送成功
* @retval SD_FAILURE 发送失败
*/
ST_RET ac_send_setfile_req(AC_REQ_CTRL * req_ctrl );
/**
* 读取某个文件的属性或目录下的所有文件的属性
* @param srv_id 服务器id
* @param getfav_info 读文件属性请求信息
* @param time_out 请求超时时间
* @param req_ctrl_out 传出的请求控制结构
*/
ST_RET ac_get_file_attr(ST_INT srv_id, AC_GETFAV_REQ_INFO *getfav_info,
ST_INT time_out, AC_REQ_CTRL **req_ctrl_out);
/**
* 发送读文件属性服务接口,请求已从链表中取出
* @param req_ctrl 请求结构
* @retval SD_SUCCESS 发送成功
* @retval SD_FAILURE 发送失败
*/
ST_RET ac_send_getfav_req(AC_REQ_CTRL * req_ctrl );
/**
* 释放AC_GETFAV_REQ_CTRL结构成员所占资源
* obj_vals、results成员资源
* @param reqCtrl 请求结构指针
* @return ST_VOID
*/
ST_VOID ac_cleanup_getFavReqCtrl(AC_GETFAV_REQ_CTRL *reqCtrl);
/**
* 删除文件请求
* @param srv_id 服务器id
* @param delf_info 删除文件请求信息
* @param time_out 请求超时时间
* @param req_ctrl_out 传出的请求控制结构
*/
ST_RET ac_delete_file(ST_INT srv_id, AC_DELF_REQ_INFO *delf_info,
ST_INT time_out, AC_REQ_CTRL **req_ctrl_out);
/**
* 发送删除文件服务接口,请求已从链表中取出
* @param req_ctrl 请求结构
* @retval SD_SUCCESS 发送成功
* @retval SD_FAILURE 发送失败
*/
ST_RET ac_send_delfile_req(AC_REQ_CTRL * req_ctrl );
#ifdef __cplusplus
}
#endif
#endif /** IEC61850_AC_file_H */