/********************************************************************** * @file FITKOFSolverManager.h * @brief 求解器管理 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 *********************************************************************/ #ifndef _FITK___OF____SOLVER_MANAGER__H___ #define _FITK___OF____SOLVER_MANAGER__H___ #include "FITKInterfaceFlowOFAPI.h" #include "FITKOFEnum.hpp" #include #include namespace Interface { class FITKAbstractOFSolver; } typedef std::function CREATESOLVERFUN; namespace Interface { /** * @brief 求解器信息 结构体 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ struct FITKOFSolverInfo { QString _solverName{}; FITKOFSolverTypeEnum::FITKOFSolverType _solverType{ FITKOFSolverTypeEnum::FITKOFSolverType::SolverNone}; QStringList _solverLabels{}; CREATESOLVERFUN _createFuns{}; }; /** * @brief 求解器管理 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ class FITKInterfaceFlowOFAPI FITKOFSolverManager { public: explicit FITKOFSolverManager(); virtual ~FITKOFSolverManager(); /** * @brief 通过过滤类型获取求解器名称链表 * @param[i] filtersList * @return QList * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ QStringList filterSolvers(QList filtersList); /** * @brief 获取求解器信息 * @param[i] solverName 求解器名称 * @return FITKOFSolverInfo * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ FITKOFSolverInfo getSolverInfoBySolverName(QString solverName); private: /** * @brief 初始化求解器数据信息 * @return void * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ void initSolvers(); private: /** * @brief 求解器数据信息 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ QList m_solvers{}; }; } #endif