/** * @file ModuleCheckResult.h * @brief 文件包含模块参数校验的错误信息结果定义 * @author Haidong Wang * @date 2011-10-21 */ #ifndef PAI_FRAME_MODULEAPI_MODULECHECKRESULT_H #define PAI_FRAME_MODULEAPI_MODULECHECKRESULT_H #include #include #include "Turtle.h" namespace pai { namespace module { /** * @class CModuleParameterErrorInfo * @brief 模块参数的错误信息, 模块开发人员请不要直接调用此类的接口,此类需配合CModuleCheckResult使用. * @see CModuleCheckResult */ class CModuleParameterErrorInfo { public: /** * @brief 构造函数 * @param[in] strParameterItemID 参数项ID * @param[in] strMessage 错误信息 */ CModuleParameterErrorInfo(const std::string& strParameterItemID,const std::string& strMessage); /** * @brief 析构函数 */ virtual ~CModuleParameterErrorInfo(){}; /** * @brief 获取模块参数项在对应模块的参数容器中的ID * @return 参数项的id */ std::string GetParameterItemID() const; /** * @brief 获取该模块参数Validate后产生的错误信息 * @return 错误信息 */ std::string GetMessage() const; /** * @brief 设置该模块参数项的错误信息 * @param[in] strMessage 模块参数项的错误信息 */ void SetMessage(const std::string& strMessage); private: std::string m_strParamItemID; ///< 模块参数项在对应模块的参数容器中的ID std::string m_strMessage; ///< 模块参数Validate后产生的错误信息 }; /** * @class CModuleCheckResult * @brief 模块错误信息,包含了多个参数的错误提示, 用于模块校验开发 */ class PAI_MODULE_EXPORT CModuleCheckResult { public: /** * @brief 构造函数 * @param[in] iModuleStepID 模块id */ CModuleCheckResult(int iModuleStepID); /** * @brief 虚析构函数 */ virtual ~CModuleCheckResult(){}; /** * @brief 模块错误信息是否为空,为空表示没有错误信息 * @return 没有错误信息则返回true,否则返回false */ bool IsEmpty() const; /** * @brief 增加模块参数错误信息 * @param[in] strParameterItemID 模块参数在对应模块的参数容器中的ID * @param[in] strMessage 该模块参数的错误信息 */ void AddParameterErroInfo(const std::string& strParameterItemID,const std::string& strMessage); /** * @brief 增加模块参数错误信息, 推荐模块开发人员调用AddParameterErroInfo(std::string, std::string)代替 * @see CModuleCheckResult#AddParameterErroInfo(std::string, std::string) * @param[in] parameterErroInfo 模块参数错误信息 */ void AddParameterErroInfo(const CModuleParameterErrorInfo& parameterErroInfo); /** * @brief 移除模块参数错误信息 * @param[in] strParameterItemID 模块参数在对应模块的参数容器中的ID * @return 移除错误信息成功则返回true,否则返回false */ bool RemoveParameterErroInfo(const std::string& strParameterItemID); /** * @brief 得出所有出错的参数的索引 * @brief[out] vecParameterItemIDs 所有出错的参数的ID */ void GetErroInfoParameterIDs(std::vector& vecParameterItemIDs) const; /** * @brief 根据指定的参数索引得出对应的参数错误信息 * @param[in] strParameterItemID 模块参数在对应模块的参数容器中的ID * @return 参数错误信息 */ std::string GetErrorMessage(const std::string& strParameterItemID) const; /** * @brief 清空所有错误信息 */ void Clear(); private: int m_iModuleStepID; ///< 模块在对应工作流中的ID std::vector m_vecParameterErroInfos; ///< 多个参数的错误提示集合 }; } } #endif