15 #ifndef CORE_UTIL_ROOT_H_
16 #define CORE_UTIL_ROOT_H_
23 #define BDM_CLASS_DEF(class_name, class_version_id) \
24 ClassDef(class_name, class_version_id)
25 #define BDM_CLASS_DEF_NV(class_name, class_version_id) \
26 ClassDefNV(class_name, class_version_id)
27 #define BDM_CLASS_DEF_OVERRIDE(class_name, class_version_id) \
28 ClassDefOverride(class_name, class_version_id)
39 #define BDM_DICT_ERROR_MSG \
40 "You tried to use a ROOT dictionary function, but " \
41 "compiled BioDynaMo without dictionary support. " \
42 "Please configure with cmake -Ddict=on .. and recompile."
49 #define BDM_NULL_CLASS_DEF(class_name, class_version_id) \
51 static TClass* Class() { \
52 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
55 static const char* Class_Name() { \
56 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
59 static Version_t Class_Version() { \
60 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
61 return class_version_id; \
63 static TClass* Dictionary() { \
64 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
67 virtual TClass* IsA() const { \
68 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
69 return class_name::Class(); \
71 virtual void ShowMembers(TMemberInspector& insp) const { \
72 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
74 virtual void Streamer(TBuffer&) { \
75 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
77 void StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) { \
78 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
80 static const char* DeclFileName() { \
81 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
84 static int ImplFileLine() { \
85 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
88 static const char* ImplFileName() { \
89 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
92 static int DeclFileLine() { \
93 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
100 #define BDM_NULL_CLASS_DEF_NV(class_name, class_version_id) \
102 static TClass* Class() { \
103 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
106 static const char* Class_Name() { \
107 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
110 static Version_t Class_Version() { \
111 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
112 return class_version_id; \
114 static TClass* Dictionary() { \
115 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
118 TClass* IsA() const { return class_name::Class(); } \
119 void ShowMembers(TMemberInspector& insp) const { \
120 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
122 void Streamer(TBuffer&) { Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); } \
123 void StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) { \
124 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
126 static const char* DeclFileName() { \
127 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
130 static int ImplFileLine() { \
131 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
134 static const char* ImplFileName() { \
135 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
138 static int DeclFileLine() { \
139 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
146 #define BDM_NULL_CLASS_DEF_OVERRIDE(class_name, class_version_id) \
148 static TClass* Class() { \
149 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
152 static const char* Class_Name() { \
153 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
156 static Version_t Class_Version() { \
157 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
158 return class_version_id; \
160 static TClass* Dictionary() { \
161 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
164 TClass* IsA() const override { \
165 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
166 return class_name::Class(); \
168 void ShowMembers(TMemberInspector& insp) const override { \
169 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
171 void Streamer(TBuffer&) override { \
172 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
174 void StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) { \
175 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
177 static const char* DeclFileName() { \
178 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
181 static int ImplFileLine() { \
182 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
185 static const char* ImplFileName() { \
186 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
189 static int DeclFileLine() { \
190 Log::Fatal("Dictionary", BDM_DICT_ERROR_MSG); \
198 #define BDM_CLASS_DEF(class_name, class_version_id) \
199 BDM_NULL_CLASS_DEF(class_name, class_version_id)
200 #define BDM_CLASS_DEF_NV(class_name, class_version_id) \
201 BDM_NULL_CLASS_DEF_NV(class_name, class_version_id)
202 #define BDM_CLASS_DEF_OVERRIDE(class_name, class_version_id) \
203 BDM_NULL_CLASS_DEF_OVERRIDE(class_name, class_version_id)
void PrintDataMemberInfo(const std::string &class_name)
Writes information of each data member of a class to cout.