From 460879fd2200cda906607597c2d883bd1131bf03 Mon Sep 17 00:00:00 2001
From: Henning Glawe <glaweh@debian.org>
Date: Fri, 19 Aug 2016 20:53:22 +0200
Subject: [PATCH] add addMatchTelemetry method to backends

actual implementation is only done for JsonParseEventsWriterBackend
---
 common/python/nomadcore/caching_backend.py |  6 ++++++
 common/python/nomadcore/local_backend.py   |  4 ++++
 common/python/nomadcore/parser_backend.py  | 15 +++++++++++++++
 3 files changed, 25 insertions(+)

diff --git a/common/python/nomadcore/caching_backend.py b/common/python/nomadcore/caching_backend.py
index 78eeb87..9391cd6 100644
--- a/common/python/nomadcore/caching_backend.py
+++ b/common/python/nomadcore/caching_backend.py
@@ -338,6 +338,12 @@ class ActiveBackend(object):
         if self.propagateStartFinishParsing and self.superBackend:
             self.superBackend.finishedParsingSession(parsingStatus, parsingErrors, mainFileUri, parserInfo)
 
+    def addMatchTelemetry(self, match_telemetry, gIndex = -1):
+        """ should be called for outputting match telemetry data:
+        input data, together with capture info """
+        if self.superBackend:
+            self.superBackend.addMatchTelemetry(match_telemetry, gIndex)
+
     def metaInfoEnv(self):
         """the metaInfoEnv this parser was optimized for"""
         return self.__metaInfoEnv
diff --git a/common/python/nomadcore/local_backend.py b/common/python/nomadcore/local_backend.py
index 2a7e54e..23eecc4 100644
--- a/common/python/nomadcore/local_backend.py
+++ b/common/python/nomadcore/local_backend.py
@@ -201,6 +201,10 @@ class LocalBackend(object):
         """
         pass
 
+    def addMatchTelemetry(self, match_telemetry, gIndex = -1):
+        """ should be called for outputting match telemetry data:
+        input data, together with capture info """
+        pass
 
 #===============================================================================
 class Results(object):
diff --git a/common/python/nomadcore/parser_backend.py b/common/python/nomadcore/parser_backend.py
index 4365c83..92687d4 100644
--- a/common/python/nomadcore/parser_backend.py
+++ b/common/python/nomadcore/parser_backend.py
@@ -235,6 +235,21 @@ class JsonParseEventsWriterBackend(object):
         }
         self.__jsonOutput(res)
 
+    def addMatchTelemetry(self, match_telemetry, gIndex = -1):
+        if not self.writeMatchTelemetry:
+            return
+        res = {
+            'event': "matchTelemetry",
+            'gIndex': gIndex,
+            'line': match_telemetry['line'],
+            'lineNr': match_telemetry['lineNr'],
+            'matcherName': match_telemetry['matcherName'],
+            'matchFlags': match_telemetry['matchFlags'],
+            'flat_values': match_telemetry['span_flat'],
+            'group': match_telemetry['group'],
+        }
+        self.__jsonOutput(res)
+
     def convertScalarStringValue(self, metaName, strValue):
         """converts a scalar string value of the given meta info to a python value"""
         metaInfo = self.metaInfoEnv().infoKindEl(metaName)
-- 
GitLab