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_Component/FITKCGNSIO/FITKCGNSIOInterface.h

141 lines
4.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 FITKCGNSIOInterface.h
* @brief CGNS IO接口
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*********************************************************************/
#include "FITKCGNSIOAPI.h"
#include "FITK_Kernel/FITKCore/FITKCoreMacros.h"
#include "FITK_Kernel/FITKCore/FITKAbstractObjectContainer.hpp"
#include "FITK_Kernel/FITKAppFramework/FITKComponentInterface.h"
#include <QObject>
ForwardDeclarNS(Interface, FITKAbstractIO);
namespace Interface {
class FITKUnstructuredFluidMeshVTK;
}
namespace IO
{
/**
* @brief CGNS 读写接口
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
class FITKCGNSIOAPI FITKCGNSIOInterface : public QObject, public AppFrame::FITKComponentInterface
{
Q_OBJECT
public:
/**
* @brief 构造函数
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
FITKCGNSIOInterface() = default;
/**
* @brief 析构函数
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
~FITKCGNSIOInterface() = default;
/**
* @brief 设置文件名称
* @param fileName 文件名称
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
void setFileName(const QString& fileName);
/**
* @brief 获取组件名称
* @return 组件名称
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
QString getComponentName() override;
/**
* @brief 执行组件
* @return 执行结果
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
bool exec(const int indexPort) override;
/**
* @brief 设置网格数据存放对象
* @param mesh 网格数据对象
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
void setMeshObj(Interface::FITKUnstructuredFluidMeshVTK* mesh);
/**
* @brief 获取是否执行成功标记
* @return bool
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
bool isSuccess();
/**
* @brief 是否在执行中
* @return true 执行中 false未在执行
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
bool isRunning();
/**
* @brief 设置是否在独立的线程运行。默认true为在独立线程执行
* @param r 是否在独立线程运行
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
void setRunInThread(bool r = true);
signals:
/**
* @brief 读取线程结束发送信号
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
void ioThreadFinishedSig();
private slots:
/**
* @brief 读取线程结束处理槽函数
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
void ioThreadFinishedSlot();
private:
/**
* @brief 文件名
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
QString m_fileName{};
/**
* @brief 网格数据对象
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
Interface::FITKUnstructuredFluidMeshVTK* m_Mesh{};
/**
* @brief 读写线程
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-04
*/
Core::FITKAbstractObjectContainer<Interface::FITKAbstractIO> m_io{ nullptr };
/**
* @brief 是否执行成功标记
* @author liuzhonghua (liuzhonghuaszch@163.com)
* @date 2024-09-19
*/
bool m_success{ false };
/**
* @brief 是否在线程运行
* @author LiBaojun (libaojunqd@foxmail.com)
* @date 2024-03-04
*/
bool m_runInThread{ true };
};
}