From df97432987c869744405656a8d20f58c005d3136 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Wed, 11 Mar 2015 14:58:18 +0000
Subject: [PATCH] Task #7555: Cobalt bugfix: remove double prefix in outputproc
 LTA feedback keys

---
 RTCP/Cobalt/OutputProc/src/MSWriter.h            |  1 +
 RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc |  7 ++++---
 RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc        |  5 +++--
 RTCP/Cobalt/OutputProc/src/OutputThread.cc       | 12 ++++--------
 RTCP/Cobalt/OutputProc/src/OutputThread.h        |  4 +---
 5 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/RTCP/Cobalt/OutputProc/src/MSWriter.h b/RTCP/Cobalt/OutputProc/src/MSWriter.h
index cdc30492d46..0cf9257b77d 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriter.h
+++ b/RTCP/Cobalt/OutputProc/src/MSWriter.h
@@ -51,6 +51,7 @@ namespace LOFAR
       size_t itsNrBlocksWritten;
       size_t itsNrExpectedBlocks;
       ParameterSet itsConfiguration;
+      string itsConfigurationPrefix;
     };
 
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
index 711bc2f0a9c..5fbd6da2aa8 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
@@ -58,6 +58,7 @@ namespace LOFAR
       // Add file-specific processing feedback
       LTAFeedback fb(itsParset.settings);
       itsConfiguration.adoptCollection(fb.correlatedFeedback(subbandIndex));
+      itsConfigurationPrefix = fb.correlatedPrefix(subbandIndex);
 
       if (LofarStManVersion > 1) {
         string seqfilename = str(format("%s/table.f0seqnr") % msName);
@@ -125,9 +126,9 @@ namespace LOFAR
 
       itsNrBlocksWritten++;
 
-      itsConfiguration.replace("size",     str(format("%u") % getDataSize()));
-      itsConfiguration.replace("duration", str(format("%f") % ((data->sequenceNumber() + 1) * itsParset.settings.correlator.integrationTime())));
-      itsConfiguration.replace("percentageWritten", str(format("%u") % percentageWritten()));
+      itsConfiguration.replace(itsConfigurationPrefix + "size",     str(format("%u") % getDataSize()));
+      itsConfiguration.replace(itsConfigurationPrefix + "duration", str(format("%f") % ((data->sequenceNumber() + 1) * itsParset.settings.correlator.integrationTime())));
+      itsConfiguration.replace(itsConfigurationPrefix + "percentageWritten", str(format("%u") % percentageWritten()));
     }
 
 
diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
index 260fab95592..9e1e19ccc95 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterDAL.cc
@@ -114,6 +114,7 @@ namespace LOFAR
       // Add file-specific processing feedback
       LTAFeedback fb(itsParset.settings);
       itsConfiguration.adoptCollection(fb.beamFormedFeedback(itsFileNr));
+      itsConfigurationPrefix = fb.beamFormedPrefix(itsFileNr);
 
       itsNrExpectedBlocks = itsParset.settings.nrBlocks();
 
@@ -557,8 +558,8 @@ namespace LOFAR
       itsNextSeqNr = seqNr + 1;
       itsNrBlocksWritten++;
 
-      itsConfiguration.replace("size",              str(format("%u") % getDataSize()));
-      itsConfiguration.replace("percentageWritten", str(format("%u") % percentageWritten()));
+      itsConfiguration.replace(itsConfigurationPrefix + "size",              str(format("%u") % getDataSize()));
+      itsConfiguration.replace(itsConfigurationPrefix + "percentageWritten", str(format("%u") % percentageWritten()));
     }
 
     // specialisation for FinalBeamFormedData
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
index 6c04b4b2508..88a761c4bc8 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
@@ -107,8 +107,7 @@ namespace LOFAR
     template<typename T> OutputThread<T>::OutputThread(const Parset &parset,
           unsigned streamNr, Pool<T> &outputPool,
           RTmetadata &mdLogger, const std::string &mdKeyPrefix,
-          const std::string &logPrefix, const std::string &targetDirectory,
-          const std::string &LTAfeedbackPrefix)
+          const std::string &logPrefix, const std::string &targetDirectory)
       :
       itsParset(parset),
       itsStreamNr(streamNr),
@@ -116,7 +115,6 @@ namespace LOFAR
       itsMdKeyPrefix(mdKeyPrefix),
       itsLogPrefix(logPrefix),
       itsTargetDirectory(targetDirectory),
-      itsLTAfeedbackPrefix(LTAfeedbackPrefix),
       itsBlocksWritten(0),
       itsBlocksDropped(0),
       itsNrExpectedBlocks(0),
@@ -229,7 +227,7 @@ namespace LOFAR
       ParameterSet result;
 
       try {
-        result.adoptCollection(itsWriter->configuration(), itsLTAfeedbackPrefix);
+        result.adoptCollection(itsWriter->configuration());
       } catch (Exception &ex) {
         LOG_ERROR_STR(itsLogPrefix << "Could not obtain feedback for LTA: " << ex);
       }
@@ -264,8 +262,7 @@ namespace LOFAR
           mdLogger,
           mdKeyPrefix,
           logPrefix + "[SubbandOutputThread] ",
-          targetDirectory,
-          LTAFeedback::correlatedPrefix(streamNr))
+          targetDirectory)
     {
     }
 
@@ -329,8 +326,7 @@ namespace LOFAR
           mdLogger,
           mdKeyPrefix,
           logPrefix + "[TABOutputThread] ",
-          targetDirectory,
-          LTAFeedback::beamFormedPrefix(streamNr))
+          targetDirectory)
     {
     }
 
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.h b/RTCP/Cobalt/OutputProc/src/OutputThread.h
index d7206ea1fa4..a99bc244f87 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.h
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.h
@@ -56,8 +56,7 @@ namespace LOFAR
     public:
       OutputThread(const Parset &parset, unsigned streamNr, Pool<T> &outputPool,
                    RTmetadata &mdLogger, const std::string &mdKeyPrefix,
-                   const std::string &logPrefix, const std::string &targetDirectory,
-                   const std::string &LTAfeedbackPrefix);
+                   const std::string &logPrefix, const std::string &targetDirectory);
 
       virtual ~OutputThread();
 
@@ -91,7 +90,6 @@ namespace LOFAR
       const std::string itsMdKeyPrefix;
       const std::string itsLogPrefix;
       const std::string itsTargetDirectory;
-      const std::string itsLTAfeedbackPrefix;
 
       size_t itsBlocksWritten, itsBlocksDropped;
       size_t itsNrExpectedBlocks;
-- 
GitLab