/*****************************************************************//** * * @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