改进-提供消息处理签名接口

This commit is contained in:
codeboss 2025-06-10 14:12:53 +08:00
parent 0af56085ad
commit 0a7304dc41
5 changed files with 17 additions and 15 deletions

View File

@ -278,7 +278,13 @@ void DeduceFramework::execute(std::shared_ptr<Immediate> map,
if (result->_success_mark) { if (result->_success_mark) {
auto comps_list = target_ins->components(); 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; QStringList exists_component_types;
std::transform(comps_list.begin(), comps_list.end(), std::transform(comps_list.begin(), comps_list.end(),
std::back_inserter(exists_component_types), std::back_inserter(exists_component_types),

View File

@ -66,13 +66,9 @@ struct ProcList : public _ProcRoute_<Procs...>, public WsComponent
ProcList() : _ProcRoute_<Procs...>() {} ProcList() : _ProcRoute_<Procs...>() {}
// 通过 WsComponent 继承 // 通过 WsComponent 继承
QList<QString> inputTypes() const override QList<WsRespondSignatureType> signatureTypes() const override
{ {
QList<QString> list; return _ProcRoute_<>::_execute_map.keys();
for (auto key : _ProcRoute_<>::_execute_map.keys()) {
list.append(key.first);
}
return list;
} }
QList<WsRespondEntry> getEntryWithSignature(const WsRespondSignatureType& t) const override QList<WsRespondEntry> getEntryWithSignature(const WsRespondSignatureType& t) const override
{ {

View File

@ -55,11 +55,11 @@ std::shared_ptr<WsEntity> RtWsEntity::defaultNew() const {
} }
#include <QSet> #include <QSet>
QList<QString> RtWsEntity::inputTypes() const QList<WsRespondSignatureType> RtWsEntity::signatureTypes() const
{ {
QList<QString> types; QList<WsRespondSignatureType> types;
for (auto c : this->_comps_list) for (auto c : this->_comps_list)
types.append(c->inputTypes()); types.append(c->signatureTypes());
return types.toSet().toList(); return types.toSet().toList();
} }

View File

@ -71,10 +71,10 @@ public:
virtual std::shared_ptr<WsEntity> defaultNew() const; virtual std::shared_ptr<WsEntity> defaultNew() const;
/// <summary> /// <summary>
/// 允许输入的消息类型 /// 允许输入的消息处理签名类型
/// </summary> /// </summary>
/// <returns>消息类型集合</returns> /// <returns>消息处理签名类型集合</returns>
virtual QList<QString> inputTypes() const; virtual QList<WsRespondSignatureType> signatureTypes() const;
/// <summary> /// <summary>
/// 通过指定的签名获取处理入口 /// 通过指定的签名获取处理入口
/// </summary> /// </summary>

View File

@ -164,10 +164,10 @@ public:
virtual QString name() const = 0; virtual QString name() const = 0;
/// <summary> /// <summary>
/// 允许输入的消息类型 /// 允许处理的消息签名类型
/// </summary> /// </summary>
/// <returns>消息类型集合</returns> /// <returns>消息签名类型集合</returns>
virtual QList<QString> inputTypes() const = 0; virtual QList<WsRespondSignatureType> signatureTypes() const = 0;
/// <summary> /// <summary>
/// 通过指定的签名获取处理入口 /// 通过指定的签名获取处理入口
/// </summary> /// </summary>