/********************************************************************** * @file FITKOFSolutionSolverManager.h * @brief solution Solver管理器 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-22 *********************************************************************/ #ifndef _FITK___OF__SOLUTION__SOLVER_MANAGER__H___ #define _FITK___OF__SOLUTION__SOLVER_MANAGER__H___ #include "FITKInterfaceFlowOFAPI.h" #include "FITKOFEnum.hpp" #include #include #include namespace Interface { class FITKOFAbsSolutionSolver; } typedef std::function CREATESOLUTIONSOLVERFUN; namespace Interface { /** * @brief Solution Solver信息 结构体 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ struct FITKOFSolutionSolverInfo { QString _solutionSolverName{}; QHash _enableType;//SolverType, VariableType CREATESOLUTIONSOLVERFUN _createFuns{}; }; /** * @brief solution Solver管理器 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ class FITKInterfaceFlowOFAPI FITKOFSolutionSolverManager { public: explicit FITKOFSolutionSolverManager(); virtual ~FITKOFSolutionSolverManager(); /** * @brief 过滤solution solver类型 * @param[i] variableType * @param[i] solverType * @return QStringList * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-22 */ QStringList filterSolutionSolvers(QString variableType, FITKOFSolverTypeEnum::FITKOFSolverType solverType); /** * @brief 获取solution solver信息 * @param[i] solutionSolverName solution solver名称 * @return FITKOFSolverInfo * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ FITKOFSolutionSolverInfo getSolutionSolverInfo(QString solutionSolverName); private: /** * @brief 初始化Solution Solver数据信息 * @return void * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ void initSolutionSolvers(); private: /** * @brief Solution Solver数据信息 * @author liuzhonghua (liuzhonghuaszch@163.com) * @date 2024-08-21 */ QList m_solutionSolvers{}; }; } #endif