Serializable整理接口
This commit is contained in:
parent
3a77c42455
commit
22ba954955
|
@ -43,7 +43,7 @@ QList<std::shared_ptr<WsComponent>> RtWsEntity::components() const {
|
|||
return _comps_list.values();
|
||||
}
|
||||
|
||||
std::shared_ptr<WsEntity> RtWsEntity::defaultNew() const {
|
||||
std::shared_ptr<Serializable> RtWsEntity::newDefault() const {
|
||||
auto newx = std::make_shared<RtWsEntity>();
|
||||
newx->_entity_id = this->_entity_id;
|
||||
newx->_templet_name = this->_templet_name;
|
||||
|
@ -139,7 +139,7 @@ void RtEntityManager::append(std::shared_ptr<WsComponent> ins) {
|
|||
_comps_list[ins->name()] = ins;
|
||||
}
|
||||
|
||||
std::shared_ptr<WsEntity> RtEntityManager::defaultNew() const
|
||||
std::shared_ptr<Serializable> RtEntityManager::newDefault() const
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ QString RtResourceManager::name() const
|
|||
return "资源管理器实例";
|
||||
}
|
||||
|
||||
std::shared_ptr<WsEntity> RtResourceManager::defaultNew() const
|
||||
std::shared_ptr<Serializable> RtResourceManager::newDefault() const
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ public:
|
|||
/// 深度克隆本实例,插件和数据一致
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<WsEntity> defaultNew() const;
|
||||
virtual std::shared_ptr<Serializable> newDefault() const override;
|
||||
|
||||
/// <summary>
|
||||
/// 允许输入的消息类型
|
||||
|
@ -110,7 +110,7 @@ public:
|
|||
void remove(const QString& component_type) override;
|
||||
QList<std::shared_ptr<WsComponent>> components() const override;
|
||||
|
||||
std::shared_ptr<WsEntity> defaultNew() const override;
|
||||
std::shared_ptr<Serializable> newDefault() const override;
|
||||
QList<WsRespondEntry> getRespondWithSignature(const WsRespondSignatureType& t) const override;
|
||||
QList<WsRespondEntry> getRespondWithInType(const QString& msg_type) const override;
|
||||
|
||||
|
@ -129,7 +129,7 @@ public:
|
|||
uint64_t entityID() const override;
|
||||
QString name() const override;
|
||||
|
||||
std::shared_ptr<WsEntity> defaultNew() const override;
|
||||
std::shared_ptr<Serializable> newDefault() const override;
|
||||
QList<WsRespondEntry> getRespondWithSignature(const WsRespondSignatureType& t) const override;
|
||||
QList<WsRespondEntry> getRespondWithInType(const QString& msg_type) const override;
|
||||
|
||||
|
|
|
@ -5,24 +5,6 @@
|
|||
#include <memory>
|
||||
#include <functional>
|
||||
|
||||
/// <summary>
|
||||
/// 可序列化对象
|
||||
/// </summary>
|
||||
class Serializable {
|
||||
public:
|
||||
virtual ~Serializable() = default;
|
||||
/// <summary>
|
||||
/// 通过反序列化完全恢复数据
|
||||
/// </summary>
|
||||
/// <param name="obj">数据Json</param>
|
||||
virtual void recoveryFrom(const QJsonObject& obj) = 0;
|
||||
/// <summary>
|
||||
/// 通过序列化输出所有数据
|
||||
/// </summary>
|
||||
/// <param name="obj">目标Json</param>
|
||||
virtual void saveTo(QJsonObject& obj) const = 0;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// 所有异常基类
|
||||
/// </summary>
|
||||
|
@ -37,25 +19,45 @@ public:
|
|||
virtual QString content() const noexcept;
|
||||
};
|
||||
|
||||
class TopicData {
|
||||
/// <summary>
|
||||
/// 可序列化对象
|
||||
/// </summary>
|
||||
class Serializable {
|
||||
public:
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// 提取包含默认值的实例
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<Serializable> newDefault() const = 0;
|
||||
|
||||
/// 通过反序列化完全恢复数据
|
||||
/// </summary>
|
||||
/// <param name="obj">数据Json</param>
|
||||
virtual void recoveryFrom(const QJsonObject& obj) = 0;
|
||||
/// <summary>
|
||||
/// 通过序列化输出所有数据
|
||||
/// </summary>
|
||||
/// <param name="obj">目标Json</param>
|
||||
virtual void saveTo(QJsonObject& obj) const = 0;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// 命名类型数据
|
||||
/// </summary>
|
||||
class TopicData : public Serializable {
|
||||
public:
|
||||
virtual ~TopicData() = default;
|
||||
/// <summary>
|
||||
/// 获取消息类型字符串
|
||||
/// </summary>
|
||||
/// <returns>消息类型</returns>
|
||||
virtual QString topicString() const = 0;
|
||||
/// <summary>
|
||||
/// 提取包含默认值的实例
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<TopicData> newDefault() const = 0;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// 通用消息基类
|
||||
/// </summary>
|
||||
class WsMessage : public Serializable, public TopicData {
|
||||
class WsMessage : public TopicData {
|
||||
public:
|
||||
virtual ~WsMessage() = default;
|
||||
/// <summary>
|
||||
|
@ -107,12 +109,6 @@ public:
|
|||
/// <returns>运行名称</returns>
|
||||
virtual QString name() const = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 深度克隆本实例,插件和数据一致
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<WsEntity> defaultNew() const = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 通过指定的签名获取消息响应处理入口
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in New Issue