EasyLocalpp  3.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Parameters.h
Go to the documentation of this file.
1 /*
2  * Parameter.h
3  *
4  * Created on: Jul 22, 2010
5  * Author: marco
6  */
7 
8 #ifndef PARAMETER_H_
9 #define PARAMETER_H_
10 
11 #include <cstdio>
12 #include <iostream>
13 #include <fstream>
14 #include <map>
15 #include <string.h>
16 
18 
22 enum ParamType {
31 };
32 typedef enum ParamType PARAMTYPE;
33 
34 typedef struct Param PARAM;
35 typedef struct ParamData PARAMDATA;
50 struct boolParam {
54 };
55 typedef struct boolParam BOOLPARAM;
56 
58 struct ShortintParam {
64 };
66 
67 
69 struct IntParam {
75 };
76 typedef struct IntParam INTPARAM;
77 
79 struct LongintParam {
85 };
86 typedef struct LongintParam LONGINTPARAM;
87 
89 struct RealParam {
95 };
96 typedef struct RealParam REALPARAM;
97 
99 struct CharParam {
100  char* valueptr;
102  char curvalue;
104 };
105 typedef struct CharParam CHARPARAM;
106 
108 struct StringParam {
109  char** valueptr;
110  char* curvalue;
111  char* defaultvalue;
112 };
113 typedef struct StringParam STRINGPARAM;
114 
116 struct Param {
117  union {
125  } data;
126  char* name;
127  char* desc;
129  bool isadvanced;
131 };
132 
133 struct strCmp {
134  bool operator()(const char* s1, const char* s2) const {
135  return strcmp(s1, s2) < 0;
136  }
137 };
138 
139 class Parameters {
140 
141 public:
142 
144  paramsetCreate();
145  }
146  ;
148  paramsetDelete();
149  }
150  ;
151 
152  std::map<const char *, PARAM *, strCmp> paramset;
156 
159  );
160 
162  void paramsetRead(const char* filename
163  );
164 
166  RETCODE paramsetWrite(const char* filename,
167  bool comments,
168  bool onlychanged
169  );
170 
172  RETCODE paramsetAddBool(const char* name,
173  const char* desc,
174  Bool* valueptr,
175  Bool isadvanced,
176  Bool defaultvalue,
177  PARAMDATA* paramdata
178  );
179 
182  RETCODE paramsetAddInt(const char* name,
183  const char* desc,
184  Int* valueptr,
185  Bool isadvanced,
186  Int defaultvalue,
187  Int minvalue,
188  Int maxvalue,
189  PARAMDATA* paramdata
190  );
191 
194  RETCODE paramsetAddShortint(const char* name,
195  const char* desc,
196  Shortint* valueptr,
197  Bool isadvanced,
198  Shortint defaultvalue,
199  Shortint minvalue,
200  Shortint maxvalue,
201  PARAMDATA* paramdata
202  );
203 
206  RETCODE paramsetAddLongint(const char* name,
207  const char* desc,
208  Longint* valueptr,
209  Bool isadvanced,
210  Longint defaultvalue,
211  Longint minvalue,
212  Longint maxvalue,
213  PARAMDATA* paramdata
214  );
215 
218  RETCODE paramsetAddReal(const char* name,
219  const char* desc,
220  Real* valueptr,
221  Bool isadvanced,
222  Real defaultvalue,
223  Real minvalue,
224  Real maxvalue,
225  PARAMDATA* paramdata
226  );
227 
230  RETCODE paramsetAddChar(const char* name,
231  const char* desc,
232  char* valueptr,
233  Bool isadvanced,
234  char defaultvalue,
235  const char* allowedvalues,
236  PARAMDATA* paramdata
237  );
238 
241  RETCODE paramsetAddString(const char* name,
242  const char* desc,
243  char** valueptr,
244  Bool isadvanced,
245  const char* defaultvalue,
246  PARAMDATA* paramdata
247  );
248 
249 private:
250 
251  RETCODE paramsetCreate();
252 
253  RETCODE paramCreate(PARAM** param,
254  const char* name,
255  const char* desc,
256  PARAMDATA* paramdata
257  );
258 
259  RETCODE paramCreateBool(PARAM** param,
260  const char* name,
261  const char* desc,
262  Bool* valueptr,
263  Bool isadvanced,
264  Bool defaultvalue,
265  PARAMDATA* paramdata
266  );
267 
268  RETCODE paramCreateInt(PARAM** param,
269  const char* name,
270  const char* desc,
271  int* valueptr,
272  Bool isadvanced,
273  int defaultvalue,
274  int minvalue,
275  int maxvalue,
276  PARAMDATA* paramdata
277  );
278 
279 
280  RETCODE paramCreateShortint(PARAM** param,
281  const char* name,
282  const char* desc,
283  Shortint* valueptr,
284  Bool isadvanced,
285  Shortint defaultvalue,
286  Shortint minvalue,
287  Shortint maxvalue,
288  PARAMDATA* paramdata
289  );
290 
291 
292  RETCODE paramCreateChar(PARAM** param,
293  const char* name,
294  const char* desc,
295  char* valueptr,
296  Bool isadvanced,
297  char defaultvalue,
298  const char* allowedvalues,
299  PARAMDATA* paramdata
300  );
301 
303  RETCODE paramCreateString(PARAM** param,
304  const char* name,
305  const char* desc,
306  char** valueptr,
307  Bool isadvanced,
308  const char* defaultvalue,
309  PARAMDATA* paramdata
310  );
311 
313  RETCODE paramCreateLongint(PARAM** param,
314  const char* name,
315  const char* desc,
316  Longint* valueptr,
317  Bool isadvanced,
318  Longint defaultvalue,
319  Longint minvalue,
320  Longint maxvalue,
321  PARAMDATA* paramdata
322  );
323  RETCODE paramCreateReal(PARAM** param,
324  const char* name,
325  const char* desc,
326  Real* valueptr,
327  Bool isadvanced,
328  Real defaultvalue,
329  Real minvalue,
330  Real maxvalue,
331  PARAMDATA* paramdata
332  );
333 
334  RETCODE paramsetAdd(PARAM* param
335  );
336 
337  const char* paramtypeGetName(PARAMTYPE paramtype
338  );
339 
340  RETCODE paramsetGetBool(const char* name,
341  Bool* value
342  );
343 
345  RETCODE paramsetGetbool(const char* name,
346  bool* value
347  );
348 
351  RETCODE paramsetGetInt(const char* name,
352  Int* value
353  );
354 
355  RETCODE paramsetGetShortint(const char* name,
356  Int* value
357  );
358 
359 
362  RETCODE paramsetGetLongint(const char* name,
363  Longint* value
364  );
365 
368  RETCODE paramsetGetReal(const char* name,
369  Real* value
370  );
371 
374  RETCODE paramsetGetChar(const char* name,
375  char* value
376  );
377 
380  RETCODE paramsetGetString(const char* name,
381  char** value
382  );
383 
385  RETCODE paramsetSetBool(const char* name,
386  Bool value
387  );
388 
390  RETCODE paramsetSetInt(const char* name,
391  int value
392  );
393 
394 
396  RETCODE paramsetSetShortint(const char* name,
397  int value
398  );
399 
400 
402  RETCODE paramsetSetLongint(const char* name,
403  Longint value
404  );
405 
407  RETCODE paramsetSetReal(const char* name,
408  Real value
409  );
410 
412  RETCODE paramsetSetChar(const char* name,
413  char value
414  );
415 
417  RETCODE paramsetSetString(const char* name,
418  const char* value
419  );
420 
422  RETCODE paramSetBool(PARAM* param,
423  Bool value
424  );
425 
426 
428  RETCODE paramSetShortint(PARAM* param,
429  Shortint value
430  );
431 
432 
434  RETCODE paramSetInt(PARAM* param,
435  Int value
436  );
437 
439  RETCODE paramSetLongint(PARAM* param,
440  Longint value
441  );
442 
444  RETCODE paramSetReal(PARAM* param,
445  Real value
446  );
447 
449  RETCODE paramSetChar(PARAM* param,
450  char value
451  );
452 
454  RETCODE paramSetString(PARAM* param,
455  const char* value
456  );
457 
459  PARAM** paramsetGetParams();
460 
462  int paramsetGetNParams();
463 
464  RETCODE paramsetParse(char* line
465  );
466 
467  RETCODE paramParseInt(PARAM* param,
468  char* valuestr
469  );
470 
471  RETCODE paramParseBool(PARAM* param,
472  char* valuestr
473  );
474 
475  RETCODE paramParseLongint(PARAM* param,
476  char* valuestr
477  );
478 
479  RETCODE paramParseReal(PARAM* param,
480  char* valuestr
481  );
482 
483  RETCODE paramParseChar(PARAM* param,
484  char* valuestr
485  );
486 
487  RETCODE paramParseString(PARAM* param,
488  char* valuestr
489  );
490 
491  RETCODE paramWrite(PARAM* param,
492  std::ostream &file,
493  Bool comments,
494  Bool onlychanged
495  );
496 
497  RETCODE paramsetDelete();
498  RETCODE paramDelete(PARAM** param
499  );
500 
501  PARAM* hashtableRetrieve(const char * paramname);
502 
503 };
504 
505 #endif /* PARAMETER_H_ */
STRINGPARAM stringparam
Definition: Parameters.h:124
char * curvalue
Definition: Parameters.h:110
Real minvalue
Definition: Parameters.h:92
#define Longint
Definition: Definitions.h:72
Longint maxvalue
Definition: Parameters.h:83
INTPARAM intparam
Definition: Parameters.h:120
CHARPARAM charparam
Definition: Parameters.h:123
char * desc
Definition: Parameters.h:127
#define Real
Definition: Definitions.h:118
RETCODE paramsetSetToDefault()
RETCODE paramsetAddChar(const char *name, const char *desc, char *valueptr, Bool isadvanced, char defaultvalue, const char *allowedvalues, PARAMDATA *paramdata)
union Param::@0 data
RETCODE paramsetAddString(const char *name, const char *desc, char **valueptr, Bool isadvanced, const char *defaultvalue, PARAMDATA *paramdata)
Int maxvalue
Definition: Parameters.h:74
Longint * valueptr
Definition: Parameters.h:84
RETCODE paramsetAddShortint(const char *name, const char *desc, Shortint *valueptr, Bool isadvanced, Shortint defaultvalue, Shortint minvalue, Shortint maxvalue, PARAMDATA *paramdata)
Longint minvalue
Definition: Parameters.h:82
Longint defaultvalue
Definition: Parameters.h:81
enum ParamType PARAMTYPE
Definition: Parameters.h:32
#define Bool
Definition: Definitions.h:29
Shortint minvalue
Definition: Parameters.h:62
Real maxvalue
Definition: Parameters.h:93
struct ParamData PARAMDATA
Definition: Parameters.h:35
REALPARAM realparam
Definition: Parameters.h:122
Bool curvalue
Definition: Parameters.h:52
Int * valueptr
Definition: Parameters.h:70
char ** valueptr
Definition: Parameters.h:109
RETCODE paramsetAddLongint(const char *name, const char *desc, Longint *valueptr, Bool isadvanced, Longint defaultvalue, Longint minvalue, Longint maxvalue, PARAMDATA *paramdata)
RETCODE paramSetToDefault(PARAM *param)
char * allowedvalues
Definition: Parameters.h:101
Real defaultvalue
Definition: Parameters.h:91
Bool defaultvalue
Definition: Parameters.h:53
Shortint curvalue
Definition: Parameters.h:60
void paramsetRead(const char *filename)
RETCODE paramsetAddInt(const char *name, const char *desc, Int *valueptr, Bool isadvanced, Int defaultvalue, Int minvalue, Int maxvalue, PARAMDATA *paramdata)
LONGINTPARAM longintparam
Definition: Parameters.h:121
char defaultvalue
Definition: Parameters.h:103
ParamType
Definition: Parameters.h:22
Real curvalue
Definition: Parameters.h:90
std::map< const char *, PARAM *, strCmp > paramset
Definition: Parameters.h:150
Shortint * valueptr
Definition: Parameters.h:59
PARAMDATA * paramdata
Definition: Parameters.h:128
Int defaultvalue
Definition: Parameters.h:72
#define Int
Definition: Definitions.h:85
Longint curvalue
Definition: Parameters.h:80
RETCODE paramsetAddBool(const char *name, const char *desc, Bool *valueptr, Bool isadvanced, Bool defaultvalue, PARAMDATA *paramdata)
Real * valueptr
Definition: Parameters.h:94
Bool * valueptr
Definition: Parameters.h:51
SHORTINTPARAM shortintparam
Definition: Parameters.h:119
RETCODE paramsetWrite(const char *filename, bool comments, bool onlychanged)
enum RetCode RETCODE
Definition: Definitions.h:48
bool isadvanced
Definition: Parameters.h:129
Shortint defaultvalue
Definition: Parameters.h:61
char * defaultvalue
Definition: Parameters.h:111
RETCODE paramsetAddReal(const char *name, const char *desc, Real *valueptr, Bool isadvanced, Real defaultvalue, Real minvalue, Real maxvalue, PARAMDATA *paramdata)
char * valueptr
Definition: Parameters.h:100
Shortint maxvalue
Definition: Parameters.h:63
char * name
Definition: Parameters.h:126
#define Shortint
Definition: Definitions.h:91
Int curvalue
Definition: Parameters.h:71
PARAMTYPE paramtype
Definition: Parameters.h:130
char curvalue
Definition: Parameters.h:102
BOOLPARAM boolparam
Definition: Parameters.h:118
Int minvalue
Definition: Parameters.h:73
bool operator()(const char *s1, const char *s2) const
Definition: Parameters.h:134