MeVisLab Toolbox Reference
mlObjMgrSubDataType.h
Go to the documentation of this file.
1
/*************************************************************************************
2
**
3
** Copyright 2007, MeVis Medical Solutions AG
4
**
5
** The user may use this file in accordance with the license agreement provided with
6
** the Software or, alternatively, in accordance with the terms contained in a
7
** written agreement between the user and MeVis Medical Solutions AG.
8
**
9
** For further information use the contact form at https://www.mevislab.de/contact
10
**
11
**************************************************************************************/
12
13
#ifndef ML_OBJ_MGR_SUB_DATA_TYPE_H
14
#define ML_OBJ_MGR_SUB_DATA_TYPE_H
15
16
18
19
#include "MLObjMgrSystem.h"
20
21
#include "
mlObjMgrDataType.h
"
22
#include <
mlRuntimeSubClass.h
>
23
24
26
// Macros
27
28
#define QUOTE(data) #data
29
30
#define DATA_TYPE_HEADER(dataTypeName, dataType) \
31
class MLOBJMGR_EXPORT omData_##dataTypeName : public omDataType \
32
{ \
33
ML_CLASS_HEADER(omData_##dataTypeName) \
34
\
35
protected: \
36
\
37
dataType _value; \
38
\
39
public: \
40
\
41
omData_##dataTypeName() : omDataType() {} \
42
omData_##dataTypeName(const omData_##dataTypeName &type) : omDataType(), _value(type._value) {} \
43
omData_##dataTypeName(const dataType &value) : omDataType(), _value(value) {} \
44
inline omData_##dataTypeName &operator =(const omData_##dataTypeName &type) { \
45
assign(type._value); return *this; \
46
} \
47
inline omData_##dataTypeName &operator =(const dataType &value) { \
48
assign(value); return *this; \
49
} \
50
virtual void assign(const dataType &value) { \
51
_value = value; \
52
} \
53
inline operator dataType() const { \
54
return _value; \
55
} \
56
inline bool operator ==(const dataType &value) const { \
57
return _value == value; \
58
} \
59
inline bool operator !=(const dataType &value) const { \
60
return _value != value; \
61
} \
62
inline bool operator ==(const omData_##dataTypeName &value) const { \
63
return _value == value._value; \
64
} \
65
inline bool operator !=(const omData_##dataTypeName &value) const { \
66
return _value != value._value; \
67
} \
68
std::string getStringValue() const override; \
69
void setStringValue(const std::string &value) override; \
70
};
71
72
#define DATA_TYPE_SOURCE(dataTypeName,dataType,getStringCode,setStringCode) \
73
ML_CLASS_SOURCE(omData_##dataTypeName, omDataType); \
74
std::string omData_##dataTypeName::getStringValue() const { \
75
getStringCode \
76
} \
77
void omData_##dataTypeName::setStringValue(const std::string &value) { \
78
setStringCode \
79
}
80
81
#define DATA_OP_HEADER(dataTypeName, dataType, defaultValue) \
82
omData(const dataType &value) : _data(NULL) { \
83
assign(value); \
84
} \
85
omData &operator =(const dataType &value) { \
86
assign(value); return *this; \
87
} \
88
virtual void assign(const dataType &value); \
89
operator dataType() const { \
90
return (_data) ? (dataType)(*(omData_##dataTypeName *)_data) : defaultValue; \
91
} \
92
inline void set_##dataTypeName(const dataType &value) { \
93
*this = (const dataType &)value; \
94
} \
95
inline dataType get_##dataTypeName() const { \
96
return (_data) ? (dataType)(*(omData_##dataTypeName *)_data) : defaultValue; \
97
}
98
99
#define DATA_OP_SOURCE(dataTypeName, dataType) \
100
void omData::assign(const dataType &value) { \
101
if(_data == NULL) { \
102
createDataType(QUOTE(omData_##dataTypeName)); \
103
\
104
if(_data == NULL) \
105
return; \
106
} \
107
\
108
*(omData_##dataTypeName *)_data = value; \
109
}
110
111
#endif
// __mlObjMgrSubDataType_H
mlObjMgrDataType.h
mlRuntimeSubClass.h
MeVisLab
Standard
Sources
ML
MLObjMgr
ObjMgr
mlObjMgrSubDataType.h
Generated by
1.9.1