Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/general/flags.hpp
3206 views
1
#ifndef FILE_FLAGS
2
#define FILE_FLAGS
3
4
5
/**************************************************************************/
6
/* File: flags.hh */
7
/* Author: Joachim Schoeberl */
8
/* Date: 10. Oct. 96 */
9
/**************************************************************************/
10
11
/**
12
Flag - Table.
13
A flag table maintains string variables, numerical
14
variables and boolean flags.
15
*/
16
class Flags
17
{
18
///
19
SYMBOLTABLE<char *> strflags;
20
///
21
SYMBOLTABLE<double> numflags;
22
///
23
SYMBOLTABLE<int> defflags;
24
///
25
SYMBOLTABLE<ARRAY<char*>*> strlistflags;
26
///
27
SYMBOLTABLE<ARRAY<double>*> numlistflags;
28
public:
29
///
30
Flags ();
31
///
32
~Flags ();
33
34
/// Deletes all flags
35
void DeleteFlags ();
36
/// Sets string flag, overwrite if exists
37
void SetFlag (const char * name, const char * val);
38
/// Sets numerical flag, overwrite if exists
39
void SetFlag (const char * name, double val);
40
/// Sets boolean flag
41
void SetFlag (const char * name);
42
/// Sets string arary falg
43
void SetFlag (const char * name, const ARRAY<char*> & val);
44
/// Sets double array flag
45
void SetFlag (const char * name, const ARRAY<double> & val);
46
47
/// Save flags to file
48
void SaveFlags (const char * filename) const;
49
/// write flags to stream
50
void PrintFlags (ostream & ost) const;
51
/// Load flags from file
52
void LoadFlags (const char * filename);
53
/// set flag of form -name=hello -val=0.5 -defined
54
void SetCommandLineFlag (const char * st);
55
56
/// Returns string flag, default value if not exists
57
const char * GetStringFlag (const char * name, const char * def) const;
58
/// Returns numerical flag, default value if not exists
59
double GetNumFlag (const char * name, double def) const;
60
/// Returns address of numerical flag, null if not exists
61
const double * GetNumFlagPtr (const char * name) const;
62
/// Returns address of numerical flag, null if not exists
63
double * GetNumFlagPtr (const char * name);
64
/// Returns boolean flag
65
bool GetDefineFlag (const char * name) const;
66
/// Returns string list flag, empty array if not exist
67
const ARRAY<char*> & GetStringListFlag (const char * name) const;
68
/// Returns num list flag, empty array if not exist
69
const ARRAY<double> & GetNumListFlag (const char * name) const;
70
71
72
/// Test, if string flag is defined
73
bool StringFlagDefined (const char * name) const;
74
/// Test, if num flag is defined
75
bool NumFlagDefined (const char * name) const;
76
/// Test, if string list flag is defined
77
bool StringListFlagDefined (const char * name) const;
78
/// Test, if num list flag is defined
79
bool NumListFlagDefined (const char * name) const;
80
};
81
82
#endif
83
84
85