96 lines
1.5 KiB
C
96 lines
1.5 KiB
C
|
/**
|
|||
|
* @file XNBaseFrameObject.h
|
|||
|
* @author jinchao
|
|||
|
* @brief 框架对象基类
|
|||
|
* @version 1.0
|
|||
|
* @date 2025-01-08
|
|||
|
*
|
|||
|
* @copyright Copyright (c) 2025 COMAC
|
|||
|
*
|
|||
|
*/
|
|||
|
#pragma once
|
|||
|
|
|||
|
#include "XNObject.h"
|
|||
|
|
|||
|
class XNBaseFrameObjectPrivate;
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 框架对象基类
|
|||
|
*/
|
|||
|
class XNCORE_EXPORT XNBaseFrameObject : public XNObject
|
|||
|
{
|
|||
|
/**
|
|||
|
* @brief 宏定义,用于支持Qt的元对象系统
|
|||
|
*/
|
|||
|
Q_OBJECT
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 宏定义,用于禁用拷贝构造函数
|
|||
|
*/
|
|||
|
Q_DISABLE_COPY(XNBaseFrameObject)
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 宏定义,用于声明私有数据成员
|
|||
|
*/
|
|||
|
Q_DECLARE_PRIVATE(XNBaseFrameObject);
|
|||
|
|
|||
|
public:
|
|||
|
/**
|
|||
|
* @brief 构造函数
|
|||
|
* @param parent 父对象
|
|||
|
*/
|
|||
|
XNBaseFrameObject(QObject *parent = nullptr);
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 析构函数
|
|||
|
*/
|
|||
|
virtual ~XNBaseFrameObject();
|
|||
|
|
|||
|
protected:
|
|||
|
/**
|
|||
|
* @brief 构造函数
|
|||
|
* @param dd 私有数据成员
|
|||
|
* @param parent 父对象
|
|||
|
*/
|
|||
|
XNBaseFrameObject(XNBaseFrameObjectPrivate &dd, QObject *parent = nullptr);
|
|||
|
|
|||
|
signals:
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
*/
|
|||
|
void Initialize();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化失败
|
|||
|
*/
|
|||
|
void InitializeFailed();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 准备执行
|
|||
|
*/
|
|||
|
void PrepareForExecute();
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 准备执行失败
|
|||
|
*/
|
|||
|
void PrepareForExecuteFailed();
|
|||
|
|
|||
|
public slots:
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
*/
|
|||
|
virtual void OnInitialize() = 0;
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 准备执行
|
|||
|
*/
|
|||
|
virtual void OnPrepareForExecute() = 0;
|
|||
|
|
|||
|
public:
|
|||
|
/**
|
|||
|
* @brief 获取框架对象状态
|
|||
|
* @return 框架对象状态
|
|||
|
*/
|
|||
|
XNFrameObjectStatus GetFrameObjectStatus();
|
|||
|
};
|