/** * @file GlobalModuleBackup.h * @brief 模块参数信息备份管理类 * @date 2012-02-21 */ #ifndef PAI_FRAME_WORKFLOWWIDGET_GLOBALMODULEBACKUP_H #define PAI_FRAME_WORKFLOWWIDGET_GLOBALMODULEBACKUP_H #include #include #include "Turtle.h" namespace pai { namespace workflow { class CModuleInformation; } } namespace pai { namespace graphics2d { /** * @class GlobalModuleBackup * @brief 模块参数信息备份管理器 */ class PAI_WORKFLOWWIDGET_EXPORT GlobalModuleBackup { public: /** * @brief 构造函数 */ GlobalModuleBackup(); /** * @brief 析构函数 */ virtual ~GlobalModuleBackup(); /** * @brief 获取备份的模块信息 * @param[in] workflowID 工作流ID * @param[in] pModule 模块信息 * @return 备份的模块信息 */ pai::workflow::CModuleInformation* GetBackupModule(const QUuid& workflowID, pai::workflow::CModuleInformation *pModule) const; /** * @brief 插入新加入模块信息和该模块的备份信息 * @param[in] workflowID 工作流ID * @param[in] pModule 新加入的模块信息 */ bool InsertBackupModule(const QUuid& workflowID, pai::workflow::CModuleInformation *pModule); /** * @brief 删除模块和模块的备份信息 * @param[in] workflowID 工作流ID * @param[in] pModule 所需要删除的模块 */ bool RemoveBackupModule(const QUuid& workflowID, pai::workflow::CModuleInformation *pModule); /** * @brief 删除某个工作流所有的模块和模块的备份信息 * @param[in] workflowID 工作流ID */ bool RemoveBackupModulesInWorkflow(const QUuid& workflowID); /** * @brief 重新备份模块信息 * @param[in] workflowID 工作流ID */ void UpDateBackupModule(const QUuid& workflowID); /** * @brief 更新备份的模块信息中的stepID,因为stepID值会因为其它模块的删除被改变 * @param[in] workflowID 工作流ID */ bool UpdateBackupModuleStepIDs(const QUuid &workflowID); /** * @brief 根据源模块和备份模块是否参数相等来判断源模块的参数是否被修改 * @param[in] workflowID 工作流ID * @param[in] pSrcModule 模块信息 */ bool HasModified(const QUuid& workflowID, pai::workflow::CModuleInformation *pSrcModule) const; private: QMap > m_ModuleInfo; ///< 当前模块信息,备份的模块信息 }; } } /** * @brief 获取备份类的单例 * @return 备份类对象指针 */ extern PAI_WORKFLOWWIDGET_EXPORT pai::graphics2d::GlobalModuleBackup* GetGlobalModuleBackup(); #endif ///< PAI_FRAME_WORKFLOWWIDGET_GLOBALMODULEBACKUP_H