diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc b/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc index b51abcb3d6a2f0679c6dd60422688cfab2c16baa..4c63ca356c725cae4cd766819d65be2c73759b81 100644 --- a/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc +++ b/RTCP/Cobalt/OutputProc/src/MSWriterNull.cc @@ -33,8 +33,14 @@ namespace LOFAR { - MSWriterNull::MSWriterNull () + MSWriterNull::MSWriterNull(const Parset &parset ) + : + itsParset(parset) { + itsConfiguration.add("size", "0"); + itsConfiguration.add("percentageWritten", "0"); + itsConfiguration.add("startTime", parset.getString("Observation.startTime")); + itsConfiguration.add("duration", "0"); } @@ -43,17 +49,17 @@ namespace LOFAR } - void MSWriterNull::write(StreamableData *) + void MSWriterNull::write(StreamableData *data) { // We do not know why the creation of the propper writer failed. // Assume nothing and only report that we did not write anything itsConfiguration.replace("percentageWritten", str(format("%u") % 0)); + itsConfiguration.replace("size", str(format("%u") % getDataSize())); + itsConfiguration.replace("duration", + str(format("%f") % ((data->sequenceNumber() + 1) * + itsParset.IONintegrationTime()))); } - void MSWriterNull::augment(const FinalMetaData &finalMetaData) - { - (void)finalMetaData; // mirror implementation in MSWriter.cc - } } // namespace Cobalt } // namespace LOFAR diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterNull.h b/RTCP/Cobalt/OutputProc/src/MSWriterNull.h index 73cd01a6598426656d5acfe185b7e041d3281f4f..6f134b12edfd8c510cebf345f1478fde9179f704 100644 --- a/RTCP/Cobalt/OutputProc/src/MSWriterNull.h +++ b/RTCP/Cobalt/OutputProc/src/MSWriterNull.h @@ -33,12 +33,14 @@ namespace LOFAR class MSWriterNull : public MSWriter { public: - MSWriterNull(); + MSWriterNull(const Parset &parset); ~MSWriterNull(); - virtual void augment(const FinalMetaData &finalMetaData); - virtual void write(StreamableData *); + + private: + const Parset &itsParset; + }; diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc index 5a73b1ec7225de96d8fdb7459b557c148c5d0df2..2f26c57ae93ab8ba0a71f5f7d0f1c315079955ed 100644 --- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc +++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc @@ -258,7 +258,7 @@ namespace LOFAR if ( !itsParset.realTime()) THROW(StorageException, ex); - itsWriter = new MSWriterNull; + itsWriter = new MSWriterNull(itsParset); #if defined HAVE_AIPSPP } catch (casa::AipsError &ex) @@ -268,7 +268,7 @@ namespace LOFAR if (!itsParset.realTime()) THROW(StorageException, ex.what()); - cleanUp(); + itsWriter = new MSWriterNull(itsParset); #endif } @@ -323,7 +323,7 @@ namespace LOFAR if (!itsParset.realTime()) THROW(StorageException, ex); - itsWriter = new MSWriterNull; + itsWriter = new MSWriterNull(itsParset); #if defined HAVE_AIPSPP } catch (casa::AipsError &ex) @@ -331,8 +331,8 @@ namespace LOFAR LOG_ERROR_STR(itsLogPrefix << "Caught AipsError: " << ex.what()); if ( !itsParset.realTime()) THROW(StorageException, ex.what()); - cleanUp(); - itsWriter = new MSWriterNull; + + itsWriter = new MSWriterNull(itsParset); #endif } diff --git a/RTCP/Cobalt/OutputProc/test/tOutputThread.cc b/RTCP/Cobalt/OutputProc/test/tOutputThread.cc index 00dda6749ce2a9b5e032b65602fbbb51c40f2acd..45ad70cd4681f2f8cd082ff0cd857f34733499af 100644 --- a/RTCP/Cobalt/OutputProc/test/tOutputThread.cc +++ b/RTCP/Cobalt/OutputProc/test/tOutputThread.cc @@ -36,6 +36,7 @@ TEST(testCorrelatorOutputThreadThrowsStorageException) { cout << "testCorrelatorOutputThreadThrowsStorageException" << endl; Parset par; + par.add("Observation.startTime","2011-03-22 18:16:00"); par.add("OLAP.CNProc.integrationSteps","256"); par.add("OLAP.IONProc.integrationSteps", "4"); par.add("OLAP.correctBandPass", "F"); @@ -108,6 +109,7 @@ TEST(testCorrelatorOutputThreadRealtimeThrowsNoException) { cout << "testCorrelatorOutputThreadRealtimeThrowsNoException" << endl; Parset par; + par.add("Observation.startTime", "2011-03-22 18:16:00"); par.add("OLAP.CNProc.integrationSteps", "256"); par.add("OLAP.IONProc.integrationSteps", "4"); par.add("OLAP.correctBandPass", "F"); @@ -157,6 +159,7 @@ TEST(testBeamformerOutputThreadThrowsStorageException) { cout << "testCorrelatorOutputThreadThrowsStorageException" << endl; Parset par; + par.add("Observation.startTime", "2011-03-22 18:16:00"); par.add("OLAP.CNProc.integrationSteps", "256"); par.add("OLAP.IONProc.integrationSteps", "4"); par.add("OLAP.correctBandPass", "F"); @@ -231,6 +234,7 @@ TEST(testBeamformerOutputThreadRealtimeThrowsNoException) { cout << "testCorrelatorOutputThreadRealtimeThrowsNoException" << endl; Parset par; + par.add("Observation.startTime", "2011-03-22 18:16:00"); par.add("OLAP.CNProc.integrationSteps", "256"); par.add("OLAP.IONProc.integrationSteps", "4"); par.add("OLAP.correctBandPass", "F"); diff --git a/RTCP/Cobalt/VisualStudio/Cobalt.v12.suo b/RTCP/Cobalt/VisualStudio/Cobalt.v12.suo index b50331d9868e0ec73635e12eccb366da14ad49bc..eb5a109ed6e657986cb85892446255cfbaa42cb4 100644 Binary files a/RTCP/Cobalt/VisualStudio/Cobalt.v12.suo and b/RTCP/Cobalt/VisualStudio/Cobalt.v12.suo differ