From 0a7304dc410a05255bed165833d1157812271dff Mon Sep 17 00:00:00 2001 From: codeboss <2422523675@qq.com> Date: Tue, 10 Jun 2025 14:12:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B-=E6=8F=90=E4=BE=9B=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=A4=84=E7=90=86=E7=AD=BE=E5=90=8D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ComponentBasic/EntityDocks.cpp | 6 ++++++ ComponentBasic/componentbasic.h | 8 ++------ SimsBasic/internal_impl.cpp | 6 +++--- SimsBasic/internal_impl.h | 6 +++--- SimsBasic/simsbasic.h | 6 +++--- 5 files changed, 17 insertions(+), 15 deletions(-) diff --git a/ComponentBasic/EntityDocks.cpp b/ComponentBasic/EntityDocks.cpp index de07395..04e52e9 100644 --- a/ComponentBasic/EntityDocks.cpp +++ b/ComponentBasic/EntityDocks.cpp @@ -278,7 +278,13 @@ void DeduceFramework::execute(std::shared_ptr map, if (result->_success_mark) { auto comps_list = target_ins->components(); + for (auto comp : comps_list) { + if (!in->_component_types.contains(comp->name())) { + target_ins->remove(comp->name()); + } + } + comps_list = target_ins->components(); QStringList exists_component_types; std::transform(comps_list.begin(), comps_list.end(), std::back_inserter(exists_component_types), diff --git a/ComponentBasic/componentbasic.h b/ComponentBasic/componentbasic.h index a22c3dd..af649ec 100644 --- a/ComponentBasic/componentbasic.h +++ b/ComponentBasic/componentbasic.h @@ -66,13 +66,9 @@ struct ProcList : public _ProcRoute_, public WsComponent ProcList() : _ProcRoute_() {} // 通过 WsComponent 继承 - QList inputTypes() const override + QList signatureTypes() const override { - QList list; - for (auto key : _ProcRoute_<>::_execute_map.keys()) { - list.append(key.first); - } - return list; + return _ProcRoute_<>::_execute_map.keys(); } QList getEntryWithSignature(const WsRespondSignatureType& t) const override { diff --git a/SimsBasic/internal_impl.cpp b/SimsBasic/internal_impl.cpp index 76b8823..264f7b2 100644 --- a/SimsBasic/internal_impl.cpp +++ b/SimsBasic/internal_impl.cpp @@ -55,11 +55,11 @@ std::shared_ptr RtWsEntity::defaultNew() const { } #include -QList RtWsEntity::inputTypes() const +QList RtWsEntity::signatureTypes() const { - QList types; + QList types; for (auto c : this->_comps_list) - types.append(c->inputTypes()); + types.append(c->signatureTypes()); return types.toSet().toList(); } diff --git a/SimsBasic/internal_impl.h b/SimsBasic/internal_impl.h index 1b2e983..62af47c 100644 --- a/SimsBasic/internal_impl.h +++ b/SimsBasic/internal_impl.h @@ -71,10 +71,10 @@ public: virtual std::shared_ptr defaultNew() const; /// - /// 允许输入的消息类型 + /// 允许输入的消息处理签名类型 /// - /// 消息类型集合 - virtual QList inputTypes() const; + /// 消息处理签名类型集合 + virtual QList signatureTypes() const; /// /// 通过指定的签名获取处理入口 /// diff --git a/SimsBasic/simsbasic.h b/SimsBasic/simsbasic.h index 0c3c165..8b60292 100644 --- a/SimsBasic/simsbasic.h +++ b/SimsBasic/simsbasic.h @@ -164,10 +164,10 @@ public: virtual QString name() const = 0; /// - /// 允许输入的消息类型 + /// 允许处理的消息签名类型 /// - /// 消息类型集合 - virtual QList inputTypes() const = 0; + /// 消息签名类型集合 + virtual QList signatureTypes() const = 0; /// /// 通过指定的签名获取处理入口 ///