diff --git a/src/udi/dispatcher/dispatcher.go b/src/udi/dispatcher/dispatcher.go index f543bf8..3925edd 100644 --- a/src/udi/dispatcher/dispatcher.go +++ b/src/udi/dispatcher/dispatcher.go @@ -8,9 +8,11 @@ import "udi/handlers/ttn" var handlerMap map[string]handler.Handler = make(map[string]handler.Handler) +var archiverChannel chan mqtt.Message = make(chan mqtt.Message, 100) func InitDispatcher() { log.Printf("Initializing dispatcher") + go archiver() for _, handlerEntry := range config.Config.Handlers { log.Printf("Trying %s", handlerEntry.Name) switch handlerEntry.Name { @@ -23,11 +25,21 @@ func InitDispatcher() { } } +func archiver() { + for { + select { + case _ = <- archiverChannel: + log.Printf("Archiving message") + } + } +} + func InputDispatcher() { for { select { case message := <- mqtt.InputChannel: log.Printf("Message arrived in inputDispatcher, topic: %s\n", message.Topic) + archiverChannel <- message for _, mapping := range config.Config.TopicMappings { log.Printf("Testing %s -> %s", mapping.Topics, mapping.Handler)