24 #ifndef __CONFIGURABLE_H
25 #define __CONFIGURABLE_H
89 typedef std::list<std::pair<paramkey, paramval> >
paramlist;
90 typedef std::map<paramkey, paramval*>
parammap;
107 #define valDefMaxBound 10.0
108 #define valDefMinBound -10.0
112 #define intDefMinBound -10
113 #define intDefMaxBound 10
122 struct matchId :
public std::unary_function<Configurable*, bool>
141 name(name), revision(revision)
175 mapOfValues[key] = val;
176 if (minBound>*val) minBound = (*val)>0 ? 0 : (*val)*2;
177 if (maxBound<*val) maxBound = (*val)>0 ? (*val)*2 : 0;
178 if(!descr.empty()) mapOfDescr[key] = descr;
194 mapOfBoolean[key] = val;
195 if(!descr.empty()) mapOfDescr[key] = descr;
204 mapOfInteger[key] = val;
205 if (minBound>*val) minBound = (*val)>0 ? 0 : (*val)*2;
206 if (maxBound<*val) maxBound = (*val)>0 ? (*val)*2 : 0;
207 if(!descr.empty()) mapOfDescr[key] = descr;
255 bool traverseChildren =
true);
279 virtual void setName(
const paramkey& name,
bool callSetNameOfInspectable =
true);
283 this->revision = revision;
296 virtual bool hasParam(
const paramkey& key,
bool traverseChildren =
true)
const;
356 virtual bool storeCfg(
const char* filenamestem,
const std::list<std::string>& comments = std::list<std::string>());
358 virtual bool restoreCfg(
const char* filenamestem);
360 void print(FILE* f,
const char* prefix,
int columns=90,
bool traverseChildren =
true)
const;
363 bool parse(FILE* f,
const char* prefix = 0,
bool traverseChildren =
true);
400 int columns,
int indent)
const;
416 void initParamBounds(
const paramkey& key);
422 #endif // __CONFIGURABLE_H
virtual bool restoreCfg(const char *filenamestem)
restores the key values paires from the file : filenamestem.cfg
Definition: configurable.cpp:53
virtual void addParameter(const paramkey &key, paramval *val, const paramdescr &descr=paramdescr())
See addParameter(const paramkey& key, paramval* val, paramval minBound, paramval maxBound, const paramdescr& descr)
Definition: configurable.h:183
std::list< std::pair< paramkey, paramint > > paramintlist
Definition: configurable.h:99
virtual bool setParam(const paramkey &key, paramval val, bool traverseChildren=true)
sets the value of the given parameter or does nothing if unknown.
Definition: configurable.cpp:111
virtual paramlist getParamList() const
The list of all parameters with there value as allocated lists.
Definition: configurable.h:321
bool parambool
Definition: configurable.h:93
virtual bool hasParamDescr(const paramkey &key, bool traverseChildren=true) const
Definition: configurable.cpp:183
virtual void setName(const paramkey &name, bool callSetNameOfInspectable=true)
Sets the name of the configurable.
Definition: configurable.cpp:445
void copyParameters(const Configurable &, bool traverseChildren=true)
copies the internal params of the given configurable
Definition: configurable.cpp:196
std::pair< paramkey, paramint * > paramintpair
Definition: configurable.h:117
std::string paramkey
Definition: configurable.h:85
virtual void addConfigurable(Configurable *conf)
Adds a configurable as a child object.
Definition: configurable.cpp:427
virtual bool storeCfg(const char *filenamestem, const std::list< std::string > &comments=std::list< std::string >())
stores the key values paires into the file : filenamestem.cfg including the comments given in the lis...
Definition: configurable.cpp:37
std::string paramdescr
Definition: configurable.h:86
charArray paramkey
Definition: avrtypes.h:36
std::list< std::pair< paramkey, paramval > > paramlist
Definition: configurable.h:89
virtual paramintmap getParamIntMap() const
Definition: configurable.h:332
std::vector< Configurable * > configurableList
Definition: configurable.h:119
#define intDefMaxBound
Definition: configurable.h:113
Configurable(const std::string &name, const std::string &revision)
intialise with name and revision (use "$ID$")
Definition: configurable.h:140
virtual void addParameterDef(const paramkey &key, parambool *val, parambool def, const paramdescr &descr=paramdescr())
See addParameterDef(const paramkey&, paramval*, paramval)
Definition: configurable.h:234
virtual paramkey getRevision() const
returns the revision of the object
Definition: configurable.h:269
void printdescr(FILE *f, const char *prefix, const paramkey &key, int columns, int indent) const
Definition: configurable.cpp:364
void print(FILE *f, const char *prefix, int columns=90, bool traverseChildren=true) const
prints the keys, values and descriptions to the file. Each line is prefixed
Definition: configurable.cpp:308
virtual paramdescr getParamDescr(const paramkey &key, bool traverseChildren=true) const
returns the description for the given parameter
Definition: configurable.cpp:170
virtual parammap getParamValMap() const
Definition: configurable.h:328
matchId(int id)
Definition: configurable.h:124
unsigned long CallbackableType
Definition: backcaller.h:45
double paramval
Definition: configurable.h:88
std::map< paramkey, paramintBounds > paramintBoundsMap
Definition: configurable.h:111
virtual ~Configurable()
Definition: configurable.h:153
std::pair< paramkey, paramval * > paramvalpair
Definition: configurable.h:115
std::pair< paramkey, parambool * > paramboolpair
Definition: configurable.h:116
#define valDefMaxBound
Definition: configurable.h:107
virtual void addParameterDef(const paramkey &key, paramint *val, paramint def, paramint minBound, paramint maxBound, const paramdescr &descr=paramdescr())
See addParameterDef(const paramkey&, paramval*, paramval)
Definition: configurable.h:241
virtual paramval getParam(const paramkey &key, bool traverseChildren=true) const
returns the value of the requested parameter or 0 (+ error message to stderr) if unknown.
Definition: configurable.cpp:67
virtual void addParameter(const paramkey &key, parambool *val, const paramdescr &descr=paramdescr())
See addParameter(const paramkey& key, paramval* val) but for bool values.
Definition: configurable.h:192
#define valDefMinBound
Definition: configurable.h:108
virtual void removeConfigurable(Configurable *conf)
Removes a configurable as a child object.
Definition: configurable.cpp:432
nice predicate function for finding by ID
Definition: configurable.h:122
double paramval
Definition: avrtypes.h:37
std::map< paramkey, paramval * > parammap
Definition: configurable.h:90
virtual bool hasParamintBounds(const paramkey &key, bool traverseChildren=true) const
Definition: configurable.cpp:249
virtual void addParameter(const paramkey &key, paramval *val, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
This is the new style for adding configurable parameters.
Definition: configurable.h:172
virtual void addParameter(const paramkey &key, paramint *val, const paramdescr &descr=paramdescr())
Definition: configurable.h:211
Abstact class for configurable objects.
Definition: configurable.h:81
virtual paramboolmap getParamBoolMap() const
Definition: configurable.h:336
virtual void setRevision(const paramkey &revision)
sets the revision Hint: { return "$ID$"; }
Definition: configurable.h:282
virtual std::list< paramkey > getAllParamNames(bool traverseChildren=true)
returns all names that are configureable
Definition: configurable.cpp:145
static const CallbackableType CALLBACK_CONFIGURABLE_CHANGED
Definition: configurable.h:392
std::map< paramkey, paramint * > paramintmap
Definition: configurable.h:100
virtual void addParameterDef(const paramkey &key, paramint *val, paramint def, const paramdescr &descr=paramdescr())
Definition: configurable.h:248
int paramint
Definition: configurable.h:98
virtual void addParameter(const paramkey &key, paramint *val, paramint minBound, paramint maxBound, const paramdescr &descr=paramdescr())
See addParameter(const paramkey& key, paramval* val) but for int values.
Definition: configurable.h:201
virtual void addParameterDef(const paramkey &key, paramval *val, paramval def, paramval minBound, paramval maxBound, const paramdescr &descr=paramdescr())
This function is only provided for convenience.
Definition: configurable.h:220
Configurable()
Definition: configurable.h:135
virtual void setParamBounds(const paramkey &key, paramval minBound, paramval maxBound, bool traverseChildren=true)
Sets the bounds (minBound and maxBound) of the given parameter.
Definition: configurable.cpp:262
std::pair< paramval, paramval > paramvalBounds
Definition: configurable.h:105
std::list< std::pair< paramkey, parambool > > paramboollist
Definition: configurable.h:94
std::map< paramkey, paramdescr > paramdescrmap
Definition: configurable.h:102
virtual bool hasParam(const paramkey &key, bool traverseChildren=true) const
Returns if the requested parameter is part of the configurable or their children. ...
Definition: configurable.cpp:96
virtual void notifyOnChange(const paramkey &key)
Is called when a parameter was changes via setParam().
Definition: configurable.h:164
std::map< paramkey, paramvalBounds > paramvalBoundsMap
Definition: configurable.h:106
virtual void addParameterDef(const paramkey &key, paramval *val, paramval def, const paramdescr &descr=paramdescr())
Definition: configurable.h:227
virtual void configurableChanged()
Indicates that the configurable itself or the configurable children attached to this configurable hav...
Definition: configurable.cpp:441
bool parse(FILE *f, const char *prefix=0, bool traverseChildren=true)
parses the configuration from the given file
Definition: configurable.cpp:384
std::map< paramkey, parambool * > paramboolmap
Definition: configurable.h:95
virtual bool hasParamvalBounds(const paramkey &key, bool traverseChildren=true) const
Definition: configurable.cpp:223
int id
Definition: configurable.h:128
bool operator()(Configurable *c)
Definition: configurable.h:129
#define intDefMinBound
Definition: configurable.h:112
virtual paramintBounds getParamintBounds(const paramkey &key, bool traverseChildren=true) const
Definition: configurable.cpp:235
Class prototype which provides functions to handle callbackable classes.
Definition: backcaller.h:42
int getId() const
return the id of the configurable objects, which is created by random on initialisation ...
Definition: configurable.h:259
virtual void setParamDescr(const paramkey &key, const paramdescr &descr, bool traverseChildren=true)
sets a description for the given parameter
Definition: configurable.cpp:292
virtual paramvalBounds getParamvalBounds(const paramkey &key, bool traverseChildren=true) const
Definition: configurable.cpp:210
int c
Definition: hexapod.cpp:56
virtual paramkey getName() const
return the name of the object
Definition: configurable.h:264
virtual const configurableList & getConfigurables() const
Returns the list containing all configurable children.
Definition: configurable.cpp:437
std::pair< paramint, paramint > paramintBounds
Definition: configurable.h:110