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.cpp

83 lines
2.2 KiB
C++

#include "FITKCGNSIOInterface.h"
#include "FITKCGNSReader.h"
#include "FITK_Interface/FITKInterfaceMesh/FITKUnstructuredFluidMeshVTK.h"
#include "FITK_Kernel/FITKAppFramework/FITKAppFramework.h"
#include "FITK_Kernel/FITKAppFramework/FITKGlobalData.h"
namespace IO
{
QString FITKCGNSIOInterface::getComponentName()
{
//返回类型名
return "IO::FITKCGNSIOInterface";
}
void FITKCGNSIOInterface::setFileName(const QString& fileName)
{
m_fileName = fileName;
}
bool FITKCGNSIOInterface::exec(const int indexPort)
{
m_success = false;
if (m_Mesh == nullptr) return false;
if (m_fileName.isEmpty()) return false;
//判断indexPort 1读取 2写出
switch (indexPort)
{
case 1:
m_io = new FITKCGNSReader;
break;
case 2:
m_io = nullptr;
break;
default: break;
}
if (m_io == nullptr) return false;
m_io->setFileName(m_fileName);
m_io->setDataObject(m_Mesh);
m_io->setResultMark(&m_success);
m_io->run();
//connect(m_io.getObjectPtr(), SIGNAL(taskFinishedSig(FITKThreadTask*)), this, SLOT(ioThreadFinishedSlot()), Qt::UniqueConnection);
//m_io->setFileName(m_fileName);
//m_io->setDataObject(m_Mesh);
//m_io->setResultMark(&m_success);
////在线程运行,提交到线程池
//if (m_runInThread)
// m_io->push2ThreadPool();
//else
//{
// m_io->run();
// //不在线程运行,执行完读写之后直接触发结束信号
// emit ioThreadFinishedSig();
//}
return m_success;
}
bool FITKCGNSIOInterface::isSuccess()
{
return m_success;
}
bool FITKCGNSIOInterface::isRunning()
{
return m_io != nullptr;
}
void FITKCGNSIOInterface::setMeshObj(Interface::FITKUnstructuredFluidMeshVTK * mesh)
{
m_Mesh = mesh;
}
void FITKCGNSIOInterface::setRunInThread(bool r /*= true*/)
{
m_runInThread = r;
}
void FITKCGNSIOInterface::ioThreadFinishedSlot()
{
emit this->ioThreadFinishedSig();
}
}