10 #ifndef LOFAR_PARMDB_PARMDB_H
11 #define LOFAR_PARMDB_PARMDB_H
34 void link() { itsCount++; }
50 virtual void lock(
bool lockForWrite);
58 virtual Box getRange(
const std::string& parmNamePattern)
const = 0;
59 virtual Box getRange(
const std::vector<std::string>& parmNames)
const = 0;
72 const std::string& parmNamePattern,
77 virtual void getValues(std::vector<ParmValueSet>& values,
78 const std::vector<unsigned int>& nameIds,
79 const std::vector<ParmId>& parmIds,
80 const Box& domain) = 0;
85 virtual void putValues(
const std::string& parmName,
int& nameId,
96 const Box& domain) = 0;
107 const std::string& parmNamePattern) = 0;
117 virtual std::vector<std::string>
getNames(
const std::string& pattern) = 0;
144 void setDefStep(
unsigned int i,
double value) { itsDefSteps[i] = value; }
148 virtual void fillDefMap(
ParmMap& defMap) = 0;
155 std::vector<double> itsDefSteps;
183 void lock(
bool lockForWrite =
true) { itsRep->
lock(lockForWrite); }
191 return itsRep->
getRange(parmNamePattern);
211 const Box& domain)
const {
218 const std::vector<unsigned int>& nameIds,
219 const std::vector<ParmId>& parmIds,
const Box& domain) {
220 itsRep->
getValues(values, nameIds, parmIds, domain);
238 return itsRep->
getDefValue(parmName, defaultValue);
259 std::vector<std::string>
getNames(
const std::string& pattern)
const {
292 static std::map<std::string, int> theirDBNames;
293 static std::vector<ParmDBRep*> theirParmDBs;
A map of parameter name to value set.
Set of parameters to be used.
Class representing a 2-dim box.
Definition: Box.h:36
Abstract base class for a table holding parameters.
Definition: ParmDB.h:27
virtual void flush(bool fsync)
virtual void lock(bool lockForWrite)
void setParmDBSeqNr(int seqnr)
Definition: ParmDB.h:134
virtual void setDefaultSteps(const std::vector< double > &)=0
Set the default step values.
virtual void deleteDefValues(const std::string &parmNamePattern)=0
Delete the default value records for the given parameters.
void link()
Link to the DBRep by incrementing the count.
Definition: ParmDB.h:34
virtual Box getRange(const std::vector< std::string > &parmNames) const =0
virtual void getDefValues(ParmMap &result, const std::string &parmNamePattern)=0
void clearDefFilled()
Definition: ParmDB.h:140
const std::vector< double > & getDefaultSteps() const
Get the default step values for the axes.
Definition: ParmDB.h:63
const ParmDBMeta & getParmDBMeta() const
Definition: ParmDB.h:129
virtual void putValues(const std::string &parmName, int &nameId, ParmValueSet &values)=0
virtual void deleteValues(const std::string &parmNamePattern, const Box &domain)=0
Delete the records for the given parameters and domain.
virtual void getValues(std::vector< ParmValueSet > &values, const std::vector< unsigned int > &nameIds, const std::vector< ParmId > &parmIds, const Box &domain)=0
void setDefStep(unsigned int i, double value)
Set the i-th default step value (i<2) in order x,y.
Definition: ParmDB.h:144
virtual int getNameId(const std::string &parmName)=0
virtual void clearTables()=0
Clear database or table.
virtual void putDefValue(const std::string &parmName, const ParmValueSet &value, bool check=true)=0
Put the default value.
virtual Box getRange(const std::string &parmNamePattern) const =0
int getParmDBSeqNr() const
Definition: ParmDB.h:135
void setParmDBMeta(const ParmDBMeta &ptm)
Definition: ParmDB.h:128
ParmValueSet getDefValue(const std::string &parmName, const ParmValue &defaultValue)
virtual std::vector< std::string > getNames(const std::string &pattern)=0
Get the names of all parms matching the given (filename like) pattern.
virtual void getValuesPattern(ParmMap &result, const std::string &parmNamePattern, const Box &domain)
int unlink()
Unlink by decrementing the count.
Definition: ParmDB.h:37
Envelope class for a table holding parameters.
Definition: ParmDB.h:159
ParmValueSet getDefValue(const std::string &parmName, const ParmValue &defaultValue=ParmValue()) const
Get the initial value for the given parameter.
Definition: ParmDB.h:236
void flush(bool fsync=false)
Definition: ParmDB.h:177
static ParmDB getParmDB(unsigned int index)
Box getRange(const std::vector< std::string > &parmNames) const
Definition: ParmDB.h:193
ParmDB(const ParmDBMeta &ptm, bool forceNew=false)
int getNameId(const std::string &parmName)
Definition: ParmDB.h:265
void deleteValues(const std::string &parmNamePattern, const Box &domain)
Delete the records for the given parameters and domain.
Definition: ParmDB.h:231
const ParmDBMeta & getParmDBMeta() const
Get the name and type of the ParmDB.
Definition: ParmDB.h:273
Box getRange(const std::string &parmNamePattern="") const
Definition: ParmDB.h:190
ParmDB(const ParmDB &)
Copy contructor has reference semantics.
void getValues(ParmMap &result, const std::string &parmNamePattern, const Box &domain) const
Definition: ParmDB.h:210
void unlock()
Definition: ParmDB.h:184
const std::vector< double > & getDefaultSteps() const
Get the default step values for the axes.
Definition: ParmDB.h:199
ParmDB & operator=(const ParmDB &)
Assignment has reference semantics.
~ParmDB()
Delete underlying object if no more references to it.
Definition: ParmDB.h:169
void putDefValue(const std::string &parmName, const ParmValueSet &value, bool check=true)
Put the default value for the given parameter.
Definition: ParmDB.h:248
void setDefaultSteps(const std::vector< double > &steps)
Set the default step values.
Definition: ParmDB.h:204
void putValues(const std::string &name, int &nameId, ParmValueSet &values)
Definition: ParmDB.h:226
int getParmDBSeqNr() const
Get ParmDB sequence nr.
Definition: ParmDB.h:276
std::vector< std::string > getNames(const std::string &pattern) const
Get the names matching the pattern in the table.
Definition: ParmDB.h:259
void getValues(std::vector< ParmValueSet > &values, const std::vector< unsigned int > &nameIds, const std::vector< ParmId > &parmIds, const Box &domain)
Definition: ParmDB.h:217
void deleteDefValues(const std::string &parmNamePattern)
Delete the default value records for the given parameters.
Definition: ParmDB.h:254
void clearTables()
Clear database tables (i.e. remove all rows from all tables).
Definition: ParmDB.h:270
void lock(bool lockForWrite=true)
Definition: ParmDB.h:183
void getDefValues(ParmMap &result, const std::string &parmNamePattern) const
Definition: ParmDB.h:243
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
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53