#pragma once #include "XNBaseFrameObject.h" // 添加前向声明 class XNServiceObject; XNCLASS_PTR_DECLARE(XNServiceObject) struct XNServiceManagerPrivate; class XNServiceManager : public XNBaseFrameObject { XN_METATYPE(XNServiceManager, XNBaseFrameObject) XN_DECLARE_PRIVATE(XNServiceManager) public: /** * @brief 服务管理器类默认构造函数 */ XNServiceManager(); /** * @brief 服务管理器类析构函数 */ virtual ~XNServiceManager(); protected: XNServiceManager(PrivateType *p); public: virtual bool Initialize() override; virtual bool PrepareForExecute() override; void LoadService(const std::string &servicePath, const std::string &serviceName, const std::string &serviceVersion, uint32_t initialType); public: XNServiceObjectPtr GetService(uint32_t serviceID); uint32_t RegisterService(); };