XNSim/XNCore/XNObject.h

92 lines
1.7 KiB
C
Raw Permalink Normal View History

2025-04-28 12:25:20 +08:00
/**
* @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"
2025-05-20 15:39:40 +08:00
struct XNObjectPrivate;
2025-04-28 12:25:20 +08:00
/**
* @brief
*/
2025-05-20 15:39:40 +08:00
class XNCORE_EXPORT XNObject : public std::enable_shared_from_this<XNObject>
2025-04-28 12:25:20 +08:00
{
2025-05-20 15:39:40 +08:00
XN_METATYPE_P(XNObject)
XN_NOCOPYABLE(XNObject)
protected:
using PrivateType = XNObjectPrivate;
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
PrivateType *_Private_Ptr;
2025-04-28 12:25:20 +08:00
public:
/**
* @brief
*/
2025-05-20 15:39:40 +08:00
XNObject();
2025-04-28 12:25:20 +08:00
/**
* @brief
*/
virtual ~XNObject();
2025-05-20 15:39:40 +08:00
protected:
/**
* @brief
* @param p
*/
XNObject(PrivateType *p);
public:
2025-04-28 12:25:20 +08:00
/**
* @brief ID
* @return ID
*/
2025-05-20 15:39:40 +08:00
uint32_t GetUniqueId();
2025-04-28 12:25:20 +08:00
/**
* @brief ID
* @param uniqueId ID
*/
2025-05-20 15:39:40 +08:00
void SetUniqueId(const uint32_t &uniqueId);
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @return
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
const std::string &GetObjectName();
2025-04-28 12:25:20 +08:00
/**
2025-05-20 15:39:40 +08:00
* @brief
* @param name
2025-04-28 12:25:20 +08:00
*/
2025-05-20 15:39:40 +08:00
void SetObjectName(const std::string &name);
2025-04-28 12:25:20 +08:00
};
2025-05-20 15:39:40 +08:00
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)