DP3
ParmFacade.h
Go to the documentation of this file.
1 // ParmFacade.h: Data access the parameter database
2 //
3 // Copyright (C) 2020 ASTRON (Netherlands Institute for Radio Astronomy)
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 
6 #ifndef LOFAR_PARMDB_PARMFACADE_H
7 #define LOFAR_PARMDB_PARMFACADE_H
8 
9 #include "ParmFacadeRep.h"
10 
11 namespace dp3 {
12 namespace parmdb {
13 
16 
18 
23 //
32 //
36 class ParmFacade {
37  public:
43  ParmFacade(const std::string& tableName, bool create = false);
44 
47 
49  string version(const std::string& type) const;
50 
55  std::vector<double> getRange(
56  const std::string& parmNamePattern = std::string()) const {
57  return itsRep->getRange(parmNamePattern);
58  }
59 
62  std::vector<std::string> getNames(
63  const std::string& parmNamePattern = std::string(),
64  bool includeDefaults = false) const {
65  return itsRep->getNames(parmNamePattern, includeDefaults);
66  }
67 
70  std::vector<std::string> getDefNames(
71  const std::string& parmNamePattern = std::string()) const {
72  return itsRep->getDefNames(parmNamePattern);
73  }
74 
77  casacore::Record getDefValues(
78  const std::string& parmNamePattern = std::string()) const {
79  return itsRep->getDefValues(parmNamePattern);
80  }
81 
88  std::map<std::string, std::vector<double>> getValuesMap(
89  const std::string& parmNamePattern, double freqv1, double freqv2,
90  double freqStep, double timev1, double timev2, double timeStep,
91  bool asStartEnd = false, bool includeDefaults = false);
92  std::map<std::string, std::vector<double>> getValuesMap(
93  const std::string& parmNamePattern, double freqv1, double freqv2,
94  double timev1, double timev2, bool asStartEnd = false,
95  bool includeDefaults = false) {
96  return getValuesMap(parmNamePattern, freqv1, freqv2, 0, timev1, timev2,
97  asStartEnd, includeDefaults);
98  }
100 
107  casacore::Record getValues(const std::string& parmNamePattern, double freqv1,
108  double freqv2, double freqStep, double timev1,
109  double timev2, double timeStep,
110  bool asStartEnd = true,
111  bool includeDefaults = false) {
112  return itsRep->getValues(parmNamePattern, freqv1, freqv2, freqStep, timev1,
113  timev2, timeStep, asStartEnd, includeDefaults);
114  }
115  casacore::Record getValues(const std::string& parmNamePattern,
116  double freqv1 = -1e30, double freqv2 = 1e30,
117  double timev1 = -1e30, double timev2 = 1e30,
118  bool asStartEnd = true,
119  bool includeDefaults = false);
121 
125  casacore::Record getValues(const std::string& parmNamePattern,
126  const std::vector<double>& freqv1,
127  const std::vector<double>& freqv2,
128  const std::vector<double>& timev1,
129  const std::vector<double>& timev2,
130  bool asStartEnd = true,
131  bool includeDefaults = false) {
132  return itsRep->getValues(parmNamePattern, freqv1, freqv2, timev1, timev2,
133  asStartEnd, includeDefaults);
134  }
135 
141  casacore::Record getValuesGrid(const std::string& parmNamePattern,
142  double freqv1 = -1e30, double freqv2 = 1e30,
143  double timev1 = -1e30, double timev2 = 1e30,
144  bool asStartEnd = true) {
145  return itsRep->getValuesGrid(parmNamePattern, freqv1, freqv2, timev1,
146  timev2, asStartEnd);
147  }
148 
157  casacore::Record getCoeff(const std::string& parmNamePattern,
158  double freqv1 = -1e30, double freqv2 = 1e30,
159  double timev1 = -1e30, double timev2 = 1e30,
160  bool asStartEnd = true) {
161  return itsRep->getCoeff(parmNamePattern, freqv1, freqv2, timev1, timev2,
162  asStartEnd);
163  }
164 
166  void clearTables() { itsRep->clearTables(); }
167 
172  void addDefValues(const casacore::Record& rec, bool check = true) {
173  return itsRep->addDefValues(rec, check);
174  }
175 
177  void deleteDefValues(const std::string& parmNamePattern) {
178  return itsRep->deleteDefValues(parmNamePattern);
179  }
180 
182  void flush(bool fsync = false) { itsRep->flush(fsync); }
183 
186 
191  void lock(bool lockForWrite) { itsRep->lock(lockForWrite); }
192  void unlock() { itsRep->unlock(); }
194 
196  std::vector<double> getDefaultSteps() const {
197  return itsRep->getDefaultSteps();
198  }
199 
201  void setDefaultSteps(const std::vector<double>& steps) {
202  itsRep->setDefaultSteps(steps);
203  }
204 
209  void addValues(const casacore::Record& rec) { itsRep->addValues(rec); }
210 
212  void deleteValues(const std::string& parmNamePattern, double freqv1 = -1e30,
213  double freqv2 = 1e30, double timev1 = -1e30,
214  double timev2 = 1e30, bool asStartEnd = true) {
215  itsRep->deleteValues(parmNamePattern, freqv1, freqv2, timev1, timev2,
216  asStartEnd);
217  }
218 
219  private:
221  std::map<std::string, std::vector<double>> record2Map(
222  const casacore::Record& rec) const;
223 
224  ParmFacadeRep::ShPtr itsRep;
225 };
226 
228 
229 } // namespace parmdb
230 } // namespace dp3
231 
232 #endif
std::shared_ptr< ParmFacadeRep > ShPtr
Define a shared_ptr for this class.
Definition: ParmFacadeRep.h:41
Data access the parameter database.
Definition: ParmFacade.h:36
void setDefaultSteps(const std::vector< double > &steps)
Set the default step values for the frequency and time axis.
Definition: ParmFacade.h:201
std::vector< double > getDefaultSteps() const
Get the default step values for the frequency and time axis.
Definition: ParmFacade.h:196
casacore::Record getValues(const std::string &parmNamePattern, double freqv1=-1e30, double freqv2=1e30, double timev1=-1e30, double timev2=1e30, bool asStartEnd=true, bool includeDefaults=false)
~ParmFacade()
The destructor closes the parm table.
string version(const std::string &type) const
Get the version info (tree, top, full or other)
void clearTables()
Clear the tables, thus remove all parameter values and default values.
Definition: ParmFacade.h:166
std::vector< double > getRange(const std::string &parmNamePattern=std::string()) const
Definition: ParmFacade.h:55
ParmFacade(const std::string &tableName, bool create=false)
casacore::Record getValues(const std::string &parmNamePattern, const std::vector< double > &freqv1, const std::vector< double > &freqv2, const std::vector< double > &timev1, const std::vector< double > &timev2, bool asStartEnd=true, bool includeDefaults=false)
Definition: ParmFacade.h:125
std::vector< std::string > getNames(const std::string &parmNamePattern=std::string(), bool includeDefaults=false) const
Definition: ParmFacade.h:62
std::map< std::string, std::vector< double > > getValuesMap(const std::string &parmNamePattern, double freqv1, double freqv2, double timev1, double timev2, bool asStartEnd=false, bool includeDefaults=false)
Definition: ParmFacade.h:92
void addDefValues(const casacore::Record &rec, bool check=true)
Definition: ParmFacade.h:172
void lock(bool lockForWrite)
Definition: ParmFacade.h:191
std::vector< std::string > getDefNames(const std::string &parmNamePattern=std::string()) const
Definition: ParmFacade.h:70
casacore::Record getValuesGrid(const std::string &parmNamePattern, double freqv1=-1e30, double freqv2=1e30, double timev1=-1e30, double timev2=1e30, bool asStartEnd=true)
Definition: ParmFacade.h:141
void flush(bool fsync=false)
Flush the possible changes to disk.
Definition: ParmFacade.h:182
void deleteValues(const std::string &parmNamePattern, double freqv1=-1e30, double freqv2=1e30, double timev1=-1e30, double timev2=1e30, bool asStartEnd=true)
Delete the records for the given parameters and domain.
Definition: ParmFacade.h:212
casacore::Record getDefValues(const std::string &parmNamePattern=std::string()) const
Definition: ParmFacade.h:77
casacore::Record getValues(const std::string &parmNamePattern, double freqv1, double freqv2, double freqStep, double timev1, double timev2, double timeStep, bool asStartEnd=true, bool includeDefaults=false)
Definition: ParmFacade.h:107
void unlock()
Definition: ParmFacade.h:192
std::map< std::string, std::vector< double > > getValuesMap(const std::string &parmNamePattern, double freqv1, double freqv2, double freqStep, double timev1, double timev2, double timeStep, bool asStartEnd=false, bool includeDefaults=false)
casacore::Record getCoeff(const std::string &parmNamePattern, double freqv1=-1e30, double freqv2=1e30, double timev1=-1e30, double timev2=1e30, bool asStartEnd=true)
Definition: ParmFacade.h:157
void addValues(const casacore::Record &rec)
Definition: ParmFacade.h:209
void deleteDefValues(const std::string &parmNamePattern)
Delete the default value records for the given parameters.
Definition: ParmFacade.h:177
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53