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