From 731ef6bfe72c4070618ccceb5a7365597cd54afb Mon Sep 17 00:00:00 2001 From: Marcel Loose <loose@astron.nl> Date: Wed, 14 Feb 2007 15:59:48 +0000 Subject: [PATCH] BugId: 991 * Added operation() method to BBSSingleStep and its child classes to query the BBSSingleStep for the type of operation it will perform. * Do not use PSQL arrays anymore. They caused "major" headaches when quoting array of strings. An array of strings is now stored as a normal string delimited by '[' and ']', just as in a ParameterSet. --- CEP/BB/BBSControl/src/BBSCorrectStep.cc | 6 +++++ CEP/BB/BBSControl/src/BBSPredictStep.cc | 7 +++++- CEP/BB/BBSControl/src/BBSRefitStep.cc | 7 +++++- CEP/BB/BBSControl/src/BBSShiftStep.cc | 7 +++++- CEP/BB/BBSControl/src/BBSSolveStep.cc | 23 ++++++++++++------- .../BBSControl/src/BBSSolverProcessControl.cc | 2 +- CEP/BB/BBSControl/src/BBSStep.cc | 6 +---- CEP/BB/BBSControl/src/BBSStrategy.cc | 10 ++------ CEP/BB/BBSControl/src/BBSSubtractStep.cc | 7 +++++- CEP/BB/BBSControl/src/SolverProcessControl.cc | 2 +- 10 files changed, 50 insertions(+), 27 deletions(-) diff --git a/CEP/BB/BBSControl/src/BBSCorrectStep.cc b/CEP/BB/BBSControl/src/BBSCorrectStep.cc index cf119b1d600..636649fb153 100644 --- a/CEP/BB/BBSControl/src/BBSCorrectStep.cc +++ b/CEP/BB/BBSControl/src/BBSCorrectStep.cc @@ -37,6 +37,12 @@ namespace LOFAR } + const string& BBSCorrectStep::operation() const + { + static string theOperation("Correct"); + return theOperation; + } + const string& BBSCorrectStep::classType() const { static string theType("BBSCorrectStep"); diff --git a/CEP/BB/BBSControl/src/BBSPredictStep.cc b/CEP/BB/BBSControl/src/BBSPredictStep.cc index 4fc5f5f3222..85c3c46a59c 100644 --- a/CEP/BB/BBSControl/src/BBSPredictStep.cc +++ b/CEP/BB/BBSControl/src/BBSPredictStep.cc @@ -36,7 +36,12 @@ namespace LOFAR registerClass<BBSPredictStep>("BBSPredictStep"); } - + const string& BBSPredictStep::operation() const + { + static string theOperation("Predict"); + return theOperation; + } + const string& BBSPredictStep::classType() const { static string theType("BBSPredictStep"); diff --git a/CEP/BB/BBSControl/src/BBSRefitStep.cc b/CEP/BB/BBSControl/src/BBSRefitStep.cc index 208cbe65a31..87ab70cdde2 100644 --- a/CEP/BB/BBSControl/src/BBSRefitStep.cc +++ b/CEP/BB/BBSControl/src/BBSRefitStep.cc @@ -36,7 +36,12 @@ namespace LOFAR registerClass<BBSRefitStep>("BBSRefitStep"); } - + const string& BBSRefitStep::operation() const + { + static string theOperation("Refit"); + return theOperation; + } + const string& BBSRefitStep::classType() const { static string theType("BBSRefitStep"); diff --git a/CEP/BB/BBSControl/src/BBSShiftStep.cc b/CEP/BB/BBSControl/src/BBSShiftStep.cc index 6404b5401c9..464d23b6809 100644 --- a/CEP/BB/BBSControl/src/BBSShiftStep.cc +++ b/CEP/BB/BBSControl/src/BBSShiftStep.cc @@ -36,7 +36,12 @@ namespace LOFAR registerClass<BBSShiftStep>("BBSShiftStep"); } - + const string& BBSShiftStep::operation() const + { + static string theOperation("Shift"); + return theOperation; + } + const string& BBSShiftStep::classType() const { static string theType("BBSShiftStep"); diff --git a/CEP/BB/BBSControl/src/BBSSolveStep.cc b/CEP/BB/BBSControl/src/BBSSolveStep.cc index 3e594117efb..5a544b0aae3 100644 --- a/CEP/BB/BBSControl/src/BBSSolveStep.cc +++ b/CEP/BB/BBSControl/src/BBSSolveStep.cc @@ -105,6 +105,21 @@ namespace LOFAR } + const string& BBSSolveStep::operation() const + { + static string theOperation("Solve"); + return theOperation; + } + + + const string& BBSSolveStep::classType() const + { + LOG_TRACE_LIFETIME(TRACE_LEVEL_RTTI, ""); + static const string theType("BBSSolveStep"); + return theType; + } + + //##-------- P r i v a t e m e t h o d s --------##// void BBSSolveStep::write(BlobOStream& bos) const @@ -133,14 +148,6 @@ namespace LOFAR } - const string& BBSSolveStep::classType() const - { - LOG_TRACE_LIFETIME(TRACE_LEVEL_RTTI, ""); - static const string theType("BBSSolveStep"); - return theType; - } - - } // namespace BBS } // namespace LOFAR diff --git a/CEP/BB/BBSControl/src/BBSSolverProcessControl.cc b/CEP/BB/BBSControl/src/BBSSolverProcessControl.cc index ff155c7d810..df63b2f2630 100644 --- a/CEP/BB/BBSControl/src/BBSSolverProcessControl.cc +++ b/CEP/BB/BBSControl/src/BBSSolverProcessControl.cc @@ -259,7 +259,7 @@ namespace BBS Domain &domain = itsRegisteredDomains[request->getDomainIndex()]; domain.index = request->getDomainIndex(); domain.unknowns = request->getUnknowns(); - domain.solver.set(domain.unknowns.size()); + domain.solver.set(casa::uInt(domain.unknowns.size())); domain.epsilon = request->getEpsilon(); // Set new value solution test //domain.solver.setEpsValue(request->getEpsilon()); diff --git a/CEP/BB/BBSControl/src/BBSStep.cc b/CEP/BB/BBSControl/src/BBSStep.cc index 0544bdb586d..abf1d361aab 100644 --- a/CEP/BB/BBSControl/src/BBSStep.cc +++ b/CEP/BB/BBSControl/src/BBSStep.cc @@ -190,11 +190,7 @@ namespace LOFAR // If defined, get the correlation selection (ALL, AUTO, or CROSS), and // type (e.g., ["XX", "XY", "YX", "YY"] try { - string sel = ps.getString("Correlation.Selection"); - if (sel == "ALL" || sel == "AUTO" || sel == "CROSS") - itsCorrelation.selection = sel; - else THROW(BBSControlException, - "Invalid correlation selection " << sel); + itsCorrelation.selection = ps.getString("Correlation.Selection"); itsCorrelation.type = ps.getStringVector("Correlation.Type"); } catch (APSException&) {} diff --git a/CEP/BB/BBSControl/src/BBSStrategy.cc b/CEP/BB/BBSControl/src/BBSStrategy.cc index d7f3b0b377d..89ae2bac442 100644 --- a/CEP/BB/BBSControl/src/BBSStrategy.cc +++ b/CEP/BB/BBSControl/src/BBSStrategy.cc @@ -86,8 +86,7 @@ namespace LOFAR itsInputData = ps.getString("InputData"); // Get the region of interest (optional) - try - { + try { itsRegionOfInterest = ps.getDoubleVector("RegionOfInterest"); } catch (APSException&) {} @@ -96,12 +95,7 @@ namespace LOFAR itsDomainSize.timeInterval = ps.getDouble("WorkDomainSize.Time"); // Get the correlation product selection (ALL, AUTO, or CROSS) - string sel = ps.getString("Correlation.Selection"); - if (sel == "ALL" || sel == "AUTO" || sel == "CROSS") - itsCorrelation.selection = sel; - else - THROW(BBSControlException, - "Invalid correlation selection " << sel); + itsCorrelation.selection = ps.getString("Correlation.Selection"); itsCorrelation.type = ps.getStringVector("Correlation.Type"); // Get the integration intervals in frequency (Hz) and time (s). diff --git a/CEP/BB/BBSControl/src/BBSSubtractStep.cc b/CEP/BB/BBSControl/src/BBSSubtractStep.cc index 111fc8219a3..687423a75de 100644 --- a/CEP/BB/BBSControl/src/BBSSubtractStep.cc +++ b/CEP/BB/BBSControl/src/BBSSubtractStep.cc @@ -36,7 +36,12 @@ namespace LOFAR registerClass<BBSSubtractStep>("BBSSubtractStep"); } - + const string& BBSSubtractStep::operation() const + { + static string theOperation("Subtract"); + return theOperation; + } + const string& BBSSubtractStep::classType() const { static string theType("BBSSubtractStep"); diff --git a/CEP/BB/BBSControl/src/SolverProcessControl.cc b/CEP/BB/BBSControl/src/SolverProcessControl.cc index ff155c7d810..df63b2f2630 100644 --- a/CEP/BB/BBSControl/src/SolverProcessControl.cc +++ b/CEP/BB/BBSControl/src/SolverProcessControl.cc @@ -259,7 +259,7 @@ namespace BBS Domain &domain = itsRegisteredDomains[request->getDomainIndex()]; domain.index = request->getDomainIndex(); domain.unknowns = request->getUnknowns(); - domain.solver.set(domain.unknowns.size()); + domain.solver.set(casa::uInt(domain.unknowns.size())); domain.epsilon = request->getEpsilon(); // Set new value solution test //domain.solver.setEpsValue(request->getEpsilon()); -- GitLab