99 lines
1.9 KiB
C
Raw Permalink Normal View History

2025-07-19 12:44:06 +08:00
/**
* @file XNObject.h
* @author jinchao
* @brief
* @version 1.0
* @date 2025-01-08
*
* @copyright Copyright (c) 2025 COMAC
*
*/
#pragma once
#include "XNGlobalDefine/XNDefine.h"
#include "XNLogger/XNLogger.h"
namespace XNSim {
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
*/
XN_UINT32 GetUniqueId();
/**
* @brief ID
* @param uniqueId ID
*/
void SetUniqueId(const XN_UINT32 &uniqueId);
/**
* @brief
* @return
*/
const XN_STRING &GetObjectName();
/**
* @brief
* @param name
*/
void SetObjectName(const XN_STRING &name);
};
class XNFramework;
class XNDDSManager;
class XNEventManager;
class XNModelManager;
class XNServiceManager;
class XNThreadManager;
class XNTimeManager;
class XNConfigManager;
class XNThreadObject;
class XNModelObject;
class XNServiceObject;
XNCLASS_PTR_DECLARE(XNFramework)
XNCLASS_PTR_DECLARE(XNDDSManager)
XNCLASS_PTR_DECLARE(XNEventManager)
XNCLASS_PTR_DECLARE(XNModelManager)
XNCLASS_PTR_DECLARE(XNServiceManager)
XNCLASS_PTR_DECLARE(XNThreadManager)
XNCLASS_PTR_DECLARE(XNTimeManager)
XNCLASS_PTR_DECLARE(XNConfigManager)
XNCLASS_PTR_DECLARE(XNThreadObject)
XNCLASS_PTR_DECLARE(XNModelObject)
XNCLASS_PTR_DECLARE(XNServiceObject)
} // namespace XNSim