/** * @file XNBaseFrameObject.h * @author jinchao * @brief 框架对象基类 * @version 1.0 * @date 2025-01-08 * * @copyright Copyright (c) 2025 COMAC * */ #pragma once #include "XNObject.h" struct XNBaseFrameObjectPrivate; /** * @brief 框架对象基类 */ class XNCORE_EXPORT XNBaseFrameObject : public XNObject { /** * @brief 宏定义,用于禁用拷贝构造函数 */ XN_METATYPE(XNBaseFrameObject, XNObject) /** * @brief 宏定义,用于声明私有数据成员 */ XN_DECLARE_PRIVATE(XNBaseFrameObject) public: /** * @brief 构造函数 * @param parent 父对象 */ XNBaseFrameObject(); /** * @brief 析构函数 */ virtual ~XNBaseFrameObject(); protected: /** * @brief 构造函数 * @param dd 私有数据成员 * @param parent 父对象 */ XNBaseFrameObject(PrivateType *p); public: /** * @brief 初始化 */ virtual bool Initialize() = 0; /** * @brief 准备执行 */ virtual bool PrepareForExecute() = 0; /** * @brief 获取框架对象状态 * @return 框架对象状态 */ XNFrameObjectStatus GetFrameObjectStatus(); /** * @brief 获取框架对象 * @return 框架对象 */ XNFrameworkPtr GetFramework(); /** * @brief 设置框架对象 * @param framework 框架对象 */ void SetFramework(XNFrameworkPtr framework); };