Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#pragma once
// [cfg-var.h]: configurable variable class 'cfgVariable'
//
// -------------------------------------------------------------------------------------------- //
#define _CRT_SECURE_NO_WARNINGS
#include <string>
namespace nse
{
class cfgVariable {
public:
enum VAR_TYPE { IS_UNDEF, IS_INT, IS_DOUBLE, IS_STRING, IS_BOOLEAN };
cfgVariable();
cfgVariable(const char* value);
cfgVariable(const char* name,
const char* value);
~cfgVariable();
cfgVariable(const cfgVariable& var);
const cfgVariable& operator=(cfgVariable var);
void swap(cfgVariable& a);
cfgVariable& operator+=(const cfgVariable& var);
cfgVariable& operator-=(const cfgVariable& var);
cfgVariable& operator*=(const cfgVariable& var);
cfgVariable& operator/=(const cfgVariable& var);
cfgVariable& operator%=(const cfgVariable& var);
cfgVariable& operator^=(const cfgVariable& var);
const cfgVariable operator+(const cfgVariable& var) const;
const cfgVariable operator-(const cfgVariable& var) const;
const cfgVariable operator*(const cfgVariable& var) const;
const cfgVariable operator/(const cfgVariable& var) const;
const cfgVariable operator%(const cfgVariable& var) const;
const cfgVariable operator^(const cfgVariable& var) const;
const cfgVariable operator-() const;
const cfgVariable operator+() const;
void set(const char* name, const char* value);
void change_name(const char* name);
// name == NULL - not changing variable name
void clear();
int get_value(int* value) const;
int get_value(float* value) const;
int get_value(double* value) const;
int get_value(char** value) const;
int get_value(std::string& value) const;
int get_value(bool* value) const;
VAR_TYPE get_type() const;
bool is_varname(const char* ex_name) const;
bool is_valid_name() const; // name not empty string
bool is_valid_type() const; // type != IS_UNDEF
bool is_eq_name(const cfgVariable& var) const;
void print() const;
private:
char* name; // default name = empty string = "\0";
// always keeping name as string != NULL
VAR_TYPE type;
int eint;
double edouble;
char *estring;
bool ebool;
size_t name_memsize; // memory handler for name string
};
}