81 lines
1.4 KiB
C
81 lines
1.4 KiB
C
|
/**
|
|||
|
* @file XNBaseFrameObject.h
|
|||
|
* @author jinchao
|
|||
|
* @brief 框架对象基类
|
|||
|
* @version 1.0
|
|||
|
* @date 2025-01-08
|
|||
|
*
|
|||
|
* @copyright Copyright (c) 2025 COMAC
|
|||
|
*
|
|||
|
*/
|
|||
|
#pragma once
|
|||
|
|
|||
|
#include <XNObject/XNObject.h>
|
|||
|
|
|||
|
namespace XNSim {
|
|||
|
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 XN_BOOL Initialize() = 0;
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 准备执行
|
|||
|
*/
|
|||
|
virtual XN_BOOL PrepareForExecute() = 0;
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 获取框架对象状态
|
|||
|
* @return 框架对象状态
|
|||
|
*/
|
|||
|
XNFrameObjectStatus GetFrameObjectStatus();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 获取框架对象
|
|||
|
* @return 框架对象
|
|||
|
*/
|
|||
|
XNFrameworkPtr GetFramework();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 设置框架对象
|
|||
|
* @param framework 框架对象
|
|||
|
*/
|
|||
|
void SetFramework(XNFrameworkPtr framework);
|
|||
|
};
|
|||
|
} // namespace XNSim
|