endpointhash 1.0
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
#include "api/ipc_dbus/CommandDispatcher.h"
|
||||
|
||||
#include "message_bus/pipeline/DynamicRuleRegistry.h"
|
||||
#include "message_bus/pipeline/rules/DynamicRuleRegistry.h"
|
||||
#include "message_bus/pipeline/discovery/DiscoveryPool.h"
|
||||
#include "message_bus/pipeline/mapping/MappingRegistry.h"
|
||||
|
||||
namespace softbus::api::ipc
|
||||
{
|
||||
@@ -22,6 +24,8 @@ softbus::message_bus::pipeline::RuleScope parseScope(const QJsonObject& params)
|
||||
DispatchResult CommandDispatcher::dispatch(const QString& action, const QJsonObject& params) const
|
||||
{
|
||||
auto& reg = softbus::message_bus::pipeline::DynamicRuleRegistry::instance();
|
||||
auto& mappingReg = softbus::message_bus::pipeline::MappingRegistry::instance();
|
||||
auto& discovery = softbus::message_bus::pipeline::DiscoveryPool::instance();
|
||||
if (action == QStringLiteral("add_filter")) {
|
||||
softbus::message_bus::pipeline::FilterRule rule;
|
||||
rule.id = params.value(QStringLiteral("id")).toString();
|
||||
@@ -57,7 +61,45 @@ DispatchResult CommandDispatcher::dispatch(const QString& action, const QJsonObj
|
||||
QJsonObject{{QStringLiteral("id"), id}}};
|
||||
}
|
||||
if (action == QStringLiteral("list_rules") || action == QStringLiteral("get_status")) {
|
||||
return {0, QStringLiteral("ok"), reg.status()};
|
||||
QJsonObject status = reg.status();
|
||||
status.insert(QStringLiteral("discovery"), discovery.status());
|
||||
status.insert(QStringLiteral("mapping"), mappingReg.status());
|
||||
return {0, QStringLiteral("ok"), status};
|
||||
}
|
||||
if (action == QStringLiteral("add_mapping_rule")) {
|
||||
softbus::message_bus::pipeline::MappingRule rule;
|
||||
const QString keyText = params.value(QStringLiteral("compositeKey")).toString();
|
||||
rule.compositeKey = keyText.toULongLong();
|
||||
rule.domPath = params.value(QStringLiteral("domPath")).toString();
|
||||
rule.scale = params.value(QStringLiteral("scale")).toDouble(1.0);
|
||||
rule.offset = params.value(QStringLiteral("offset")).toDouble(0.0);
|
||||
rule.unit = params.value(QStringLiteral("unit")).toString();
|
||||
if (!mappingReg.upsert(rule)) {
|
||||
return {4004, QStringLiteral("invalid_mapping_rule"), {}};
|
||||
}
|
||||
return {0, QStringLiteral("ok"), QJsonObject{{QStringLiteral("compositeKey"), keyText}}};
|
||||
}
|
||||
if (action == QStringLiteral("remove_mapping_rule")) {
|
||||
const QString keyText = params.value(QStringLiteral("compositeKey")).toString();
|
||||
const bool ok = mappingReg.remove(keyText.toULongLong());
|
||||
return {ok ? 0 : 4043, ok ? QStringLiteral("ok") : QStringLiteral("mapping_rule_not_found"),
|
||||
QJsonObject{{QStringLiteral("compositeKey"), keyText}}};
|
||||
}
|
||||
if (action == QStringLiteral("list_mapping_rules")) {
|
||||
return {0, QStringLiteral("ok"), QJsonObject{{QStringLiteral("items"), mappingReg.list()}}};
|
||||
}
|
||||
if (action == QStringLiteral("discovery_start")) {
|
||||
const auto ttlMs = params.value(QStringLiteral("ttlMs")).toInteger(0);
|
||||
discovery.startSniffing(ttlMs);
|
||||
return {0, QStringLiteral("ok"), discovery.status()};
|
||||
}
|
||||
if (action == QStringLiteral("discovery_stop")) {
|
||||
discovery.stopSniffing();
|
||||
return {0, QStringLiteral("ok"), discovery.status()};
|
||||
}
|
||||
if (action == QStringLiteral("discovery_clear")) {
|
||||
discovery.clear();
|
||||
return {0, QStringLiteral("ok"), discovery.status()};
|
||||
}
|
||||
return {4040, QStringLiteral("unknown_action"), {}};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user