96 lines
1.5 KiB
C++
Executable File
96 lines
1.5 KiB
C++
Executable File
/**
|
||
* @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();
|
||
};
|