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

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