diff --git a/SimsBasic/internal_impl.cpp b/SimsBasic/internal_impl.cpp index cb09768..1578c4c 100644 --- a/SimsBasic/internal_impl.cpp +++ b/SimsBasic/internal_impl.cpp @@ -43,7 +43,7 @@ QList> RtWsEntity::components() const { return _comps_list.values(); } -std::shared_ptr RtWsEntity::defaultNew() const { +std::shared_ptr RtWsEntity::newDefault() const { auto newx = std::make_shared(); newx->_entity_id = this->_entity_id; newx->_templet_name = this->_templet_name; @@ -139,7 +139,7 @@ void RtEntityManager::append(std::shared_ptr ins) { _comps_list[ins->name()] = ins; } -std::shared_ptr RtEntityManager::defaultNew() const +std::shared_ptr RtEntityManager::newDefault() const { return nullptr; } @@ -213,7 +213,7 @@ QString RtResourceManager::name() const return "资源管理器实例"; } -std::shared_ptr RtResourceManager::defaultNew() const +std::shared_ptr RtResourceManager::newDefault() const { return nullptr; } diff --git a/SimsBasic/internal_impl.h b/SimsBasic/internal_impl.h index b245abd..a5f1e9e 100644 --- a/SimsBasic/internal_impl.h +++ b/SimsBasic/internal_impl.h @@ -68,7 +68,7 @@ public: /// 深度克隆本实例,插件和数据一致 /// /// - virtual std::shared_ptr defaultNew() const; + virtual std::shared_ptr newDefault() const override; /// /// 允许输入的消息类型 @@ -110,7 +110,7 @@ public: void remove(const QString& component_type) override; QList> components() const override; - std::shared_ptr defaultNew() const override; + std::shared_ptr newDefault() const override; QList getRespondWithSignature(const WsRespondSignatureType& t) const override; QList getRespondWithInType(const QString& msg_type) const override; @@ -129,7 +129,7 @@ public: uint64_t entityID() const override; QString name() const override; - std::shared_ptr defaultNew() const override; + std::shared_ptr newDefault() const override; QList getRespondWithSignature(const WsRespondSignatureType& t) const override; QList getRespondWithInType(const QString& msg_type) const override; diff --git a/SimsBasic/simsbasic.h b/SimsBasic/simsbasic.h index 1eca461..d96bee4 100644 --- a/SimsBasic/simsbasic.h +++ b/SimsBasic/simsbasic.h @@ -5,24 +5,6 @@ #include #include -/// -/// 可序列化对象 -/// -class Serializable { -public: - virtual ~Serializable() = default; - /// - /// 通过反序列化完全恢复数据 - /// - /// 数据Json - virtual void recoveryFrom(const QJsonObject& obj) = 0; - /// - /// 通过序列化输出所有数据 - /// - /// 目标Json - virtual void saveTo(QJsonObject& obj) const = 0; -}; - /// /// 所有异常基类 /// @@ -37,25 +19,45 @@ public: virtual QString content() const noexcept; }; -class TopicData { +/// +/// 可序列化对象 +/// +class Serializable { +public: + /// + /// + /// 提取包含默认值的实例 + /// + /// + virtual std::shared_ptr newDefault() const = 0; + + /// 通过反序列化完全恢复数据 + /// + /// 数据Json + virtual void recoveryFrom(const QJsonObject& obj) = 0; + /// + /// 通过序列化输出所有数据 + /// + /// 目标Json + virtual void saveTo(QJsonObject& obj) const = 0; +}; + +/// +/// 命名类型数据 +/// +class TopicData : public Serializable { public: - virtual ~TopicData() = default; /// /// 获取消息类型字符串 /// /// 消息类型 virtual QString topicString() const = 0; - /// - /// 提取包含默认值的实例 - /// - /// - virtual std::shared_ptr newDefault() const = 0; }; /// /// 通用消息基类 /// -class WsMessage : public Serializable, public TopicData { +class WsMessage : public TopicData { public: virtual ~WsMessage() = default; /// @@ -107,12 +109,6 @@ public: /// 运行名称 virtual QString name() const = 0; - /// - /// 深度克隆本实例,插件和数据一致 - /// - /// - virtual std::shared_ptr defaultNew() const = 0; - /// /// 通过指定的签名获取消息响应处理入口 ///