10 #ifndef LOFAR_PARMDB_PARMDBCASA_H
11 #define LOFAR_PARMDB_PARMDBCASA_H
15 #include <casacore/casa/Arrays/Array.h>
16 #include <casacore/tables/Tables/Table.h>
17 #include <casacore/tables/Tables/ArrayColumn.h>
30 explicit ParmDBCasa(
const std::string& tableName,
bool forceNew =
false);
35 void flush(
bool fsync)
override;
41 void lock(
bool lockForWrite)
override;
49 Box getRange(
const std::string& parmNamePattern)
const override;
50 Box getRange(
const std::vector<std::string>& parmNames)
const override;
59 const std::vector<unsigned int>& nameIds,
60 const std::vector<ParmId>& parmIds,
61 const Box& domain)
override;
66 void putValues(
const std::string& parmName,
int& nameId,
71 const Box& domain)
override;
76 const std::string& parmNamePattern)
override;
80 bool check =
true)
override;
86 std::vector<std::string>
getNames(
const std::string& pattern)
override;
90 int getNameId(
const std::string& parmName)
override;
97 void fillDefMap(
ParmMap& defMap)
override;
100 void createTables(
const std::string& tableName);
104 void putDefDomain(
const Box& domain, casacore::Table& tab,
108 Box getDefDomain(
const casacore::Table& tab,
unsigned int row);
112 casacore::Table getNameSel(
const std::string& parmNamePattern)
const;
113 casacore::Vector<common::rownr_t> getNameIds(
114 const std::string& parmNamePattern)
const;
115 casacore::Vector<common::rownr_t> getNameIds(
116 const std::vector<std::string>& parmNames)
const;
120 Box findRange(
const casacore::Table& table)
const;
125 std::pair<string, ParmValueSet> extractDefValue(
const casacore::Table& sel,
130 void doPutValue(
const std::string& parmName,
int& nameId,
137 void putNewValue(
const std::string& name,
int& nameId,
ParmValueSet& parmSet,
141 int putName(
const std::string& name,
const ParmValueSet& pset);
144 void putNewDefValue(
const std::string& parmName,
const ParmValueSet& value);
147 void putInterval(
const Axis& axis, casacore::ArrayColumn<double>& col,
152 Axis::ShPtr getInterval(casacore::ROArrayColumn<double>& col,
153 unsigned int rownr,
double st,
double end,
158 casacore::Table find(
const std::string& parmName,
const Box& domain);
161 casacore::TableExprNode makeExpr(
const casacore::Table& table,
162 const Box& domain)
const;
165 void andExpr(casacore::TableExprNode& expr,
166 const casacore::TableExprNode& right)
const;
168 casacore::Table itsTables[3];
Base class for a table holding parameters.
Classes representing a regular or irregular axis.
Definition: Axis.h:29
std::shared_ptr< Axis > ShPtr
Define a shared_ptr for this class.
Definition: Axis.h:32
Class representing a 2-dim box.
Definition: Box.h:36
Class to hold parameters in a Casa table.
Definition: ParmDBCasa.h:28
void deleteDefValues(const std::string &parmNamePattern) override
Delete the default value records for the given parameters.
int getNameId(const std::string &parmName) override
void deleteValues(const std::string &parmNamePattern, const Box &domain) override
Delete the value records for the given parameters and domain.
void clearTables() override
Clear database or table.
void lock(bool lockForWrite) override
Box getRange(const std::string &parmNamePattern) const override
void getValues(std::vector< ParmValueSet > &values, const std::vector< unsigned int > &nameIds, const std::vector< ParmId > &parmIds, const Box &domain) override
std::vector< std::string > getNames(const std::string &pattern) override
Get the names of all parms matching the given (filename like) pattern.
ParmDBCasa(const std::string &tableName, bool forceNew=false)
void getDefValues(ParmMap &result, const std::string &parmNamePattern) override
void putValues(const std::string &parmName, int &nameId, ParmValueSet &values) override
void putDefValue(const std::string &name, const ParmValueSet &value, bool check=true) override
Put the default value.
void setDefaultSteps(const std::vector< double > &) override
Set the default step values.
Box getRange(const std::vector< std::string > &parmNames) const override
void flush(bool fsync) override
Flush possible changes to disk.
Abstract base class for a table holding parameters.
Definition: ParmDB.h:27
A map of parameter name to value set.
Definition: ParmMap.h:30
A class holding information of multiple domains of a parameter. ParmValueSet holds the information of...
Definition: ParmValue.h:146
A class containing the values of a parameter.
Definition: ParmValue.h:39
FunkletType
Define the possible funklet types.
Definition: ParmValue.h:45
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53