92 lines
1.7 KiB
C++
Executable File
92 lines
1.7 KiB
C++
Executable File
/**
|
|
* @file XNObject.h
|
|
* @author jinchao
|
|
* @brief 基础对象类
|
|
* @version 1.0
|
|
* @date 2025-01-08
|
|
*
|
|
* @copyright Copyright (c) 2025 COMAC
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
#include "XNCore_global.h"
|
|
#include "XNLogger.h"
|
|
|
|
struct XNObjectPrivate;
|
|
|
|
/**
|
|
* @brief 基础对象类
|
|
*/
|
|
class XNCORE_EXPORT XNObject : public std::enable_shared_from_this<XNObject>
|
|
{
|
|
XN_METATYPE_P(XNObject)
|
|
XN_NOCOPYABLE(XNObject)
|
|
protected:
|
|
using PrivateType = XNObjectPrivate;
|
|
/**
|
|
* @brief 私有数据成员
|
|
*/
|
|
PrivateType *_Private_Ptr;
|
|
|
|
public:
|
|
/**
|
|
* @brief 构造函数
|
|
*/
|
|
XNObject();
|
|
|
|
/**
|
|
* @brief 析构函数
|
|
*/
|
|
virtual ~XNObject();
|
|
|
|
protected:
|
|
/**
|
|
* @brief 构造函数
|
|
* @param p 私有数据成员
|
|
*/
|
|
XNObject(PrivateType *p);
|
|
|
|
public:
|
|
/**
|
|
* @brief 获取唯一ID
|
|
* @return 唯一ID
|
|
*/
|
|
uint32_t GetUniqueId();
|
|
|
|
/**
|
|
* @brief 设置唯一ID
|
|
* @param uniqueId 唯一ID
|
|
*/
|
|
void SetUniqueId(const uint32_t &uniqueId);
|
|
|
|
/**
|
|
* @brief 获取对象名称
|
|
* @return 对象名称
|
|
*/
|
|
const std::string &GetObjectName();
|
|
|
|
/**
|
|
* @brief 设置对象名称
|
|
* @param name 对象名称
|
|
*/
|
|
void SetObjectName(const std::string &name);
|
|
};
|
|
|
|
class XNFramework;
|
|
class XNDDSManager;
|
|
class XNEventManager;
|
|
class XNModelManager;
|
|
class XNScenarioManager;
|
|
class XNServiceManager;
|
|
class XNThreadManager;
|
|
class XNTimeManager;
|
|
|
|
XNCLASS_PTR_DECLARE(XNFramework)
|
|
XNCLASS_PTR_DECLARE(XNDDSManager)
|
|
XNCLASS_PTR_DECLARE(XNEventManager)
|
|
XNCLASS_PTR_DECLARE(XNModelManager)
|
|
XNCLASS_PTR_DECLARE(XNScenarioManager)
|
|
XNCLASS_PTR_DECLARE(XNServiceManager)
|
|
XNCLASS_PTR_DECLARE(XNThreadManager)
|
|
XNCLASS_PTR_DECLARE(XNTimeManager) |