#pragma once #include "messagebasic.h" /// /// 查询系统中的组件类型和实体类型 /// struct MESSAGEBASIC_EXPORT TypesQuery : public AbstractMessage { TypesQuery(); std::shared_ptr newDefault() const override; }; /// /// 返回系统内所有的组件类型和实体模板类型 /// struct MESSAGEBASIC_EXPORT TypesQueryResult : public AbstractMessage { QStringList _component_types; QHash _entity_templets; TypesQueryResult(); // 通过 WsMessage 继承 std::shared_ptr newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; /// /// 操作类型 /// enum class EntityOperateType { NEW, DELETE, MODIFY }; /// /// 模板操作支持增、删、改 /// struct MESSAGEBASIC_EXPORT TempletOperate : public AbstractMessage { uint64_t _operate_code = (uint64_t)EntityOperateType::NEW; QString _template_name = ""; uint64_t _template_id_within_0x2ff_0xffff = 0x2ff; TempletOperate(); // 通过 WsMessage 继承 std::shared_ptr newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; /// /// 实体构造操作 /// struct MESSAGEBASIC_EXPORT EntityOperate : public AbstractMessage { uint64_t _operate_code = (uint64_t)EntityOperateType::NEW; QString _template_name = ""; QString _entity_name = ""; uint64_t _entity_id_over_0xffff = 0xffff; EntityOperate(); // 通过 WsMessage 继承 std::shared_ptr newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; /// /// 对指定实体的组件进行操作 /// struct MESSAGEBASIC_EXPORT ComponentOperate : public AbstractMessage { uint64_t _entity_id_within_0x2ff_0xffffffffffffffff = 0x2ff; QStringList _component_types; ComponentOperate(); // 通过 WsMessage 继承 std::shared_ptr newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; }; /// /// 获取所有实体句柄 /// struct MESSAGEBASIC_EXPORT EntityTotalGet : public AbstractMessage { EntityTotalGet(); std::shared_ptr newDefault() const override; }; /// /// 所有实体列表 /// struct MESSAGEBASIC_EXPORT EntityTotalList : public AbstractMessage { QList _entities_list; EntityTotalList(); // 通过 WsMessage 继承 std::shared_ptr newDefault() const override; void recoveryFrom(const QJsonObject& obj) override; void saveTo(QJsonObject& obj) const override; };