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.
AppFlow/FITK_Interface/FITKInterfaceIOHDF5/FITKInterfaceHDF5AdaptorFil...

125 lines
3.7 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.

/**
*
* @file FITKInterfaceHDF5AdaptorFiled.h
* @brief 读写HDF5文件的Filed类
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*
*/
#ifndef _FITKINTERFACEHDF5ADAPTORFILED_H__
#define _FITKINTERFACEHDF5ADAPTORFILED_H__
#include "FITKInterfaceIOHDF5API.h"
#include "FITKAbstractHDF5Adaptor.h"
#include "FITK_Kernel/FITKAdaptor/FITKIOAdaptorFactory.h"
//前置声明
ForwardDeclarNS(Interface, FITKAbstractFiled)
namespace IO
{
/**
* @brief HDF5 Filed 读写适配器
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
class FITKINTERFACEHDF5IOAPI FITKInterfaceHDF5AdaptorFiled : public FITKAbstractHDF5Adaptor
{
public:
explicit FITKInterfaceHDF5AdaptorFiled() = default;
virtual ~FITKInterfaceHDF5AdaptorFiled() = default;
/**
* @brief 获取适配器数据类型名
* @return 适配器数据类型名
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
QString getAdaptorClass() override;
/**
* @brief 适配器读取
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool adaptR() override;
/**
* @brief 适配器写出
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool adaptW() override;
/**
* @brief 读取场
* @param filed 离散场或解析场
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool readFiled(Interface::FITKAbstractFiled* filed, H5::Group & h5Group);
/**
* @brief 写出场
* @param filed 离散场或解析场
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool writeFiled(Interface::FITKAbstractFiled* filed, H5::Group & h5Group);
private:
/**
* @brief 读取解析场
* @param filed 解析场
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool readAnalyticalExpressField(Interface::FITKAbstractFiled* filed, H5::Group & h5Group);
/**
* @brief 写出解析场
* @param filed 解析场
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool writeAnalyticalExpressField(Interface::FITKAbstractFiled* filed, H5::Group & h5Group);
/**
* @brief 读取离散场
* @param filed 离散场
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool readDiscreteFiled(Interface::FITKAbstractFiled* filed, H5::Group & h5Group);
/**
* @brief 写出离散场
* @param filed 离散场
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-07-12
*/
bool writeDiscreteFiled(Interface::FITKAbstractFiled* filed, H5::Group & h5Group);
};
Register2FITKIOAdaptorFactory(HDF5, Interface::FITKAbstractFiled, FITKInterfaceHDF5AdaptorFiled)
}
#endif