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/FITKInterfaceGeoIOHDF5/FITKInterfaceHDF5AdaptorCom...

186 lines
6.3 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 FITKInterfaceHDF5AdaptorCommand.h
* @brief HDF5 Adaptor Command。
* @author fulipeng (flipengqd@yeah.net)
* @date 2024-09-11
*
*********************************************************************/
#ifndef __FITKINTERFACEHDF5ADAPTORCOMMAND_H__
#define __FITKINTERFACEHDF5ADAPTORCOMMAND_H__
#include "FITKInterfaceGeoIOHDF5API.h"
#include "FITKAbstractHDF5Adaptor.h"
ForwardDeclarNS(Core, FITKAbstractDataObject);
ForwardDeclarNS(Interface, FITKAbsGeoCommand);
ForwardDeclarNS(Interface, FITKAbsGeoShapeAgent);
ForwardDeclarNS(H5, H5File);
ForwardDeclarNS(H5, Group);
ForwardDeclarNS(H5, H5Object);
ForwardDeclarNS(H5, DataType);
namespace IO
{
/**
* @brief HDF5 Adaptor Command
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
class FITKINTERFACEGEOIOHDF5API FITKInterfaceHDF5AdaptorCommand : public FITKAbstractHDF5Adaptor
{
public:
/**
* @brief Construct a new FITKInterfaceHDF5AdaptorCommand object
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
explicit FITKInterfaceHDF5AdaptorCommand() = default;
virtual ~FITKInterfaceHDF5AdaptorCommand() = default;
/**
* @brief 获取适配器数据类型名
* @return 适配器数据类型名
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
QString getAdaptorClass() override;
/**
* @brief 适配器读取
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
bool adaptR() override;
/**
* @brief 适配器写出
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
bool adaptW() override;
protected:
virtual bool read(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group);
virtual bool write(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group);
virtual bool readCommand(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group);
virtual bool writeCommand(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group);
virtual bool readChildVirtualShape(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group, bool isSaveShape = false);
virtual bool writeChildVirtualShape(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group, bool isSaveShape = false);
virtual bool readVShape(Interface::FITKAbsGeoCommand * comm, H5::Group & h5Group) = 0;
virtual bool writeVShape(Interface::FITKAbsGeoShapeAgent* agent, H5::Group & h5Group) = 0;
/**
* @brief 写出 草绘
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
virtual bool writeGeometrySkecth(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief 写出基础几何点
* @param comm 几何命令
* @param h5Group 数据块
* @return 状态 true成功 false失败
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-10
*/
virtual bool writeBasicGeometryPoint(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write basic geometry curve
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeBasicGeometryCurve(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write basic geometry face
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeBasicGeometryFace(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief read basic geometry solid
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool readBasicGeometrySolid(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write basic geometry solid
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeBasicGeometrySolid(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write oper geometry
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeOperGeometry(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write oper geometry point
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeOperGeometryPoint(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write oper geometry curve
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeOperGeometryCurve(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write oper geometry face
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeOperGeometryFace(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write oper geometry solid
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeOperGeometrySolid(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
/**
* @brief write shape geometry, recursion
* @return Status true and false
* @author fulipeng (fulipengqd@yeah.net)
* @date 2024-09-11
*/
virtual bool writeShapeGeometry(Interface::FITKAbsGeoCommand* comm, H5::Group & h5Group) = 0;
};
}
#endif