From 8e0418791d0c384d8074dd79d3c58002186cee25 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 4 Dec 2023 13:56:39 +0100 Subject: [PATCH] optimize --- src/udi/dispatcher/dispatcher.go | 34 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/udi/dispatcher/dispatcher.go b/src/udi/dispatcher/dispatcher.go index 40a23ae..12033a0 100644 --- a/src/udi/dispatcher/dispatcher.go +++ b/src/udi/dispatcher/dispatcher.go @@ -72,23 +72,27 @@ func InputDispatcher() { log.Printf("Message arrived in inputDispatcher, topic: %s\n", mqttMessage.Topic) message := handler.MessageT { time.Now(), mqttMessage.Topic, string(mqttMessage.Payload) } archiverChannel <- message + handleMessage(message) + } + } +} - for _, mapping := range config.Config.TopicMappings { - log.Printf("Testing %s -> %s", mapping.Topics, mapping.Handler) - for _, subscribedTopic := range mapping.Topics { - log.Printf("Testing %s in %s", message.Topic, subscribedTopic) - if mqtt.TopicMatchesSubscription(message.Topic, subscribedTopic) { - log.Printf("Handle message in handler %s", mapping.Handler) - handler, exists := handlerMap[mapping.Handler] - if exists { - handler.Handle(message) - } else { - log.Printf("Handler not found, message is lost") - } - } else { - log.Printf("no match") - } +func handleMessage(message handler.MessageT) { + for _, mapping := range config.Config.TopicMappings { + log.Printf("Testing %s -> %s", mapping.Topics, mapping.Handler) + for _, subscribedTopic := range mapping.Topics { + log.Printf("Testing %s in %s", message.Topic, subscribedTopic) + if mqtt.TopicMatchesSubscription(message.Topic, subscribedTopic) { + log.Printf("Handle message in handler %s", mapping.Handler) + handler, exists := handlerMap[mapping.Handler] + if exists { + handler.Handle(message) + return + } else { + log.Printf("Handler not found, message is lost") } + } else { + log.Printf("no match") } } }