Branch data Line data Source code
1 : : //- Class: CubitMessage
2 : : //- Description: CubitMessage class - used for reporting messages to
3 : : //- the user
4 : : //- Owner: Tim Tautges
5 : : //- Checked By:
6 : : //- Version:
7 : :
8 : : #ifndef CUBITMESSAGE_HPP
9 : : #define CUBITMESSAGE_HPP
10 : :
11 : : // *****************
12 : : // Class Declaration
13 : : // *****************
14 : :
15 : : #include <fstream>
16 : :
17 : : #include <cstdarg>
18 : : #include "CubitDefines.h"
19 : : #include "CGMUtilConfigure.h"
20 : : #include "CubitString.hpp"
21 : : #include "CubitMessageHandler.hpp"
22 : :
23 : : // CUBIT debug flags; see CubitMessage.cc for a definition of each flag
24 : :
25 : : #define CUBIT_ERROR 0
26 : : #define CUBIT_WARNING 1
27 : : #define CUBIT_INFO 2
28 : : #define CUBIT_DIAGNOSTIC 3
29 : : #define CUBIT_ERROR_EXPECTED 4
30 : : #define CUBIT_DEBUG_1 11
31 : :
32 : : #define PRINT_DEBUG_1(...) PRINT_DEBUG(1, __VA_ARGS__)
33 : : #define PRINT_DEBUG_2(...) PRINT_DEBUG(2, __VA_ARGS__)
34 : : #define PRINT_DEBUG_3(...) PRINT_DEBUG(3, __VA_ARGS__)
35 : : #define PRINT_DEBUG_4(...) PRINT_DEBUG(4, __VA_ARGS__)
36 : : #define PRINT_DEBUG_5(...) PRINT_DEBUG(5, __VA_ARGS__)
37 : : #define PRINT_DEBUG_6(...) PRINT_DEBUG(6, __VA_ARGS__)
38 : : #define PRINT_DEBUG_7(...) PRINT_DEBUG(7, __VA_ARGS__)
39 : : #define PRINT_DEBUG_8(...) PRINT_DEBUG(8, __VA_ARGS__)
40 : : #define PRINT_DEBUG_9(...) PRINT_DEBUG(9, __VA_ARGS__)
41 : : #define PRINT_DEBUG_10(...) PRINT_DEBUG(10, __VA_ARGS__)
42 : : #define PRINT_DEBUG_11(...) PRINT_DEBUG(11, __VA_ARGS__)
43 : : #define PRINT_DEBUG_12(...) PRINT_DEBUG(12, __VA_ARGS__)
44 : : #define PRINT_DEBUG_13(...) PRINT_DEBUG(13, __VA_ARGS__)
45 : : #define PRINT_DEBUG_14(...) PRINT_DEBUG(14, __VA_ARGS__)
46 : : #define PRINT_DEBUG_15(...) PRINT_DEBUG(15, __VA_ARGS__)
47 : : #define PRINT_DEBUG_16(...) PRINT_DEBUG(16, __VA_ARGS__)
48 : : #define PRINT_DEBUG_17(...) PRINT_DEBUG(17, __VA_ARGS__)
49 : : #define PRINT_DEBUG_18(...) PRINT_DEBUG(18, __VA_ARGS__)
50 : : #define PRINT_DEBUG_19(...) PRINT_DEBUG(19, __VA_ARGS__)
51 : : #define PRINT_DEBUG_20(...) PRINT_DEBUG(20, __VA_ARGS__)
52 : : #define PRINT_DEBUG_21(...) PRINT_DEBUG(21, __VA_ARGS__)
53 : : #define PRINT_DEBUG_22(...) PRINT_DEBUG(22, __VA_ARGS__)
54 : : #define PRINT_DEBUG_23(...) PRINT_DEBUG(23, __VA_ARGS__)
55 : : #define PRINT_DEBUG_24(...) PRINT_DEBUG(24, __VA_ARGS__)
56 : : #define PRINT_DEBUG_25(...) PRINT_DEBUG(25, __VA_ARGS__)
57 : : #define PRINT_DEBUG_26(...) PRINT_DEBUG(26, __VA_ARGS__)
58 : : #define PRINT_DEBUG_27(...) PRINT_DEBUG(27, __VA_ARGS__)
59 : : #define PRINT_DEBUG_28(...) PRINT_DEBUG(28, __VA_ARGS__)
60 : : #define PRINT_DEBUG_29(...) PRINT_DEBUG(29, __VA_ARGS__)
61 : : #define PRINT_DEBUG_30(...) PRINT_DEBUG(30, __VA_ARGS__)
62 : : #define PRINT_DEBUG_31(...) PRINT_DEBUG(31, __VA_ARGS__)
63 : : #define PRINT_DEBUG_32(...) PRINT_DEBUG(32, __VA_ARGS__)
64 : : #define PRINT_DEBUG_33(...) PRINT_DEBUG(33, __VA_ARGS__)
65 : : #define PRINT_DEBUG_34(...) PRINT_DEBUG(34, __VA_ARGS__)
66 : : #define PRINT_DEBUG_35(...) PRINT_DEBUG(35, __VA_ARGS__)
67 : : #define PRINT_DEBUG_36(...) PRINT_DEBUG(36, __VA_ARGS__)
68 : : #define PRINT_DEBUG_37(...) PRINT_DEBUG(37, __VA_ARGS__)
69 : : #define PRINT_DEBUG_38(...) PRINT_DEBUG(38, __VA_ARGS__)
70 : : #define PRINT_DEBUG_39(...) PRINT_DEBUG(39, __VA_ARGS__)
71 : : #define PRINT_DEBUG_40(...) PRINT_DEBUG(40, __VA_ARGS__)
72 : : #define PRINT_DEBUG_41(...) PRINT_DEBUG(41, __VA_ARGS__)
73 : : #define PRINT_DEBUG_42(...) PRINT_DEBUG(42, __VA_ARGS__)
74 : : #define PRINT_DEBUG_43(...) PRINT_DEBUG(43, __VA_ARGS__)
75 : : #define PRINT_DEBUG_44(...) PRINT_DEBUG(44, __VA_ARGS__)
76 : : #define PRINT_DEBUG_45(...) PRINT_DEBUG(45, __VA_ARGS__)
77 : : #define PRINT_DEBUG_46(...) PRINT_DEBUG(46, __VA_ARGS__)
78 : : #define PRINT_DEBUG_47(...) PRINT_DEBUG(47, __VA_ARGS__)
79 : : #define PRINT_DEBUG_48(...) PRINT_DEBUG(48, __VA_ARGS__)
80 : : #define PRINT_DEBUG_49(...) PRINT_DEBUG(49, __VA_ARGS__)
81 : : #define PRINT_DEBUG_50(...) PRINT_DEBUG(50, __VA_ARGS__)
82 : : #define PRINT_DEBUG_51(...) PRINT_DEBUG(51, __VA_ARGS__)
83 : : #define PRINT_DEBUG_52(...) PRINT_DEBUG(52, __VA_ARGS__)
84 : : #define PRINT_DEBUG_53(...) PRINT_DEBUG(53, __VA_ARGS__)
85 : : #define PRINT_DEBUG_54(...) PRINT_DEBUG(54, __VA_ARGS__)
86 : : #define PRINT_DEBUG_55(...) PRINT_DEBUG(55, __VA_ARGS__)
87 : : #define PRINT_DEBUG_56(...) PRINT_DEBUG(56, __VA_ARGS__)
88 : : #define PRINT_DEBUG_57(...) PRINT_DEBUG(57, __VA_ARGS__)
89 : : #define PRINT_DEBUG_58(...) PRINT_DEBUG(58, __VA_ARGS__)
90 : : #define PRINT_DEBUG_59(...) PRINT_DEBUG(59, __VA_ARGS__)
91 : : #define PRINT_DEBUG_60(...) PRINT_DEBUG(60, __VA_ARGS__)
92 : : #define PRINT_DEBUG_61(...) PRINT_DEBUG(61, __VA_ARGS__)
93 : : #define PRINT_DEBUG_62(...) PRINT_DEBUG(62, __VA_ARGS__)
94 : : #define PRINT_DEBUG_63(...) PRINT_DEBUG(63, __VA_ARGS__)
95 : : #define PRINT_DEBUG_64(...) PRINT_DEBUG(64, __VA_ARGS__)
96 : : #define PRINT_DEBUG_65(...) PRINT_DEBUG(65, __VA_ARGS__)
97 : : #define PRINT_DEBUG_66(...) PRINT_DEBUG(66, __VA_ARGS__)
98 : : #define PRINT_DEBUG_67(...) PRINT_DEBUG(67, __VA_ARGS__)
99 : : #define PRINT_DEBUG_68(...) PRINT_DEBUG(68, __VA_ARGS__)
100 : : #define PRINT_DEBUG_69(...) PRINT_DEBUG(69, __VA_ARGS__)
101 : : #define PRINT_DEBUG_70(...) PRINT_DEBUG(70, __VA_ARGS__)
102 : : #define PRINT_DEBUG_71(...) PRINT_DEBUG(71, __VA_ARGS__)
103 : : #define PRINT_DEBUG_72(...) PRINT_DEBUG(72, __VA_ARGS__)
104 : : #define PRINT_DEBUG_73(...) PRINT_DEBUG(73, __VA_ARGS__)
105 : : #define PRINT_DEBUG_74(...) PRINT_DEBUG(74, __VA_ARGS__)
106 : : #define PRINT_DEBUG_75(...) PRINT_DEBUG(75, __VA_ARGS__)
107 : : #define PRINT_DEBUG_76(...) PRINT_DEBUG(76, __VA_ARGS__)
108 : : #define PRINT_DEBUG_77(...) PRINT_DEBUG(77, __VA_ARGS__)
109 : : #define PRINT_DEBUG_78(...) PRINT_DEBUG(78, __VA_ARGS__)
110 : : #define PRINT_DEBUG_79(...) PRINT_DEBUG(79, __VA_ARGS__)
111 : : #define PRINT_DEBUG_80(...) PRINT_DEBUG(80, __VA_ARGS__)
112 : : #define PRINT_DEBUG_81(...) PRINT_DEBUG(81, __VA_ARGS__)
113 : : #define PRINT_DEBUG_82(...) PRINT_DEBUG(82, __VA_ARGS__)
114 : : #define PRINT_DEBUG_83(...) PRINT_DEBUG(83, __VA_ARGS__)
115 : : #define PRINT_DEBUG_84(...) PRINT_DEBUG(84, __VA_ARGS__)
116 : : #define PRINT_DEBUG_85(...) PRINT_DEBUG(85, __VA_ARGS__)
117 : : #define PRINT_DEBUG_86(...) PRINT_DEBUG(86, __VA_ARGS__)
118 : : #define PRINT_DEBUG_87(...) PRINT_DEBUG(87, __VA_ARGS__)
119 : : #define PRINT_DEBUG_88(...) PRINT_DEBUG(88, __VA_ARGS__)
120 : : #define PRINT_DEBUG_89(...) PRINT_DEBUG(89, __VA_ARGS__)
121 : : #define PRINT_DEBUG_90(...) PRINT_DEBUG(90, __VA_ARGS__)
122 : : #define PRINT_DEBUG_91(...) PRINT_DEBUG(91, __VA_ARGS__)
123 : : #define PRINT_DEBUG_92(...) PRINT_DEBUG(92, __VA_ARGS__)
124 : : #define PRINT_DEBUG_93(...) PRINT_DEBUG(93, __VA_ARGS__)
125 : : #define PRINT_DEBUG_94(...) PRINT_DEBUG(94, __VA_ARGS__)
126 : : #define PRINT_DEBUG_95(...) PRINT_DEBUG(95, __VA_ARGS__)
127 : : #define PRINT_DEBUG_96(...) PRINT_DEBUG(96, __VA_ARGS__)
128 : : #define PRINT_DEBUG_97(...) PRINT_DEBUG(97, __VA_ARGS__)
129 : : #define PRINT_DEBUG_98(...) PRINT_DEBUG(98, __VA_ARGS__)
130 : : #define PRINT_DEBUG_99(...) PRINT_DEBUG(99, __VA_ARGS__)
131 : : #define PRINT_DEBUG_100(...) PRINT_DEBUG(100, __VA_ARGS__)
132 : : #define PRINT_DEBUG_101(...) PRINT_DEBUG(101, __VA_ARGS__)
133 : : #define PRINT_DEBUG_102(...) PRINT_DEBUG(102, __VA_ARGS__)
134 : : #define PRINT_DEBUG_103(...) PRINT_DEBUG(103, __VA_ARGS__)
135 : : #define PRINT_DEBUG_104(...) PRINT_DEBUG(104, __VA_ARGS__)
136 : : #define PRINT_DEBUG_105(...) PRINT_DEBUG(105, __VA_ARGS__)
137 : : #define PRINT_DEBUG_106(...) PRINT_DEBUG(106, __VA_ARGS__)
138 : : #define PRINT_DEBUG_107(...) PRINT_DEBUG(107, __VA_ARGS__)
139 : : #define PRINT_DEBUG_108(...) PRINT_DEBUG(108, __VA_ARGS__)
140 : : #define PRINT_DEBUG_109(...) PRINT_DEBUG(109, __VA_ARGS__)
141 : : #define PRINT_DEBUG_110(...) PRINT_DEBUG(110, __VA_ARGS__)
142 : : #define PRINT_DEBUG_111(...) PRINT_DEBUG(111, __VA_ARGS__)
143 : : #define PRINT_DEBUG_112(...) PRINT_DEBUG(112, __VA_ARGS__)
144 : : #define PRINT_DEBUG_113(...) PRINT_DEBUG(113, __VA_ARGS__)
145 : : #define PRINT_DEBUG_114(...) PRINT_DEBUG(114, __VA_ARGS__)
146 : : #define PRINT_DEBUG_115(...) PRINT_DEBUG(115, __VA_ARGS__)
147 : : #define PRINT_DEBUG_116(...) PRINT_DEBUG(116, __VA_ARGS__)
148 : : #define PRINT_DEBUG_117(...) PRINT_DEBUG(117, __VA_ARGS__)
149 : : #define PRINT_DEBUG_118(...) PRINT_DEBUG(118, __VA_ARGS__)
150 : : #define PRINT_DEBUG_119(...) PRINT_DEBUG(119, __VA_ARGS__)
151 : : #define PRINT_DEBUG_120(...) PRINT_DEBUG(120, __VA_ARGS__)
152 : : #define PRINT_DEBUG_121(...) PRINT_DEBUG(121, __VA_ARGS__)
153 : : #define PRINT_DEBUG_122(...) PRINT_DEBUG(122, __VA_ARGS__)
154 : : #define PRINT_DEBUG_123(...) PRINT_DEBUG(123, __VA_ARGS__)
155 : : #define PRINT_DEBUG_124(...) PRINT_DEBUG(124, __VA_ARGS__)
156 : : #define PRINT_DEBUG_125(...) PRINT_DEBUG(125, __VA_ARGS__)
157 : : #define PRINT_DEBUG_126(...) PRINT_DEBUG(126, __VA_ARGS__)
158 : : #define PRINT_DEBUG_127(...) PRINT_DEBUG(127, __VA_ARGS__)
159 : : #define PRINT_DEBUG_128(...) PRINT_DEBUG(128, __VA_ARGS__)
160 : : #define PRINT_DEBUG_129(...) PRINT_DEBUG(129, __VA_ARGS__)
161 : : #define PRINT_DEBUG_130(...) PRINT_DEBUG(130, __VA_ARGS__)
162 : : #define PRINT_DEBUG_131(...) PRINT_DEBUG(131, __VA_ARGS__)
163 : : #define PRINT_DEBUG_132(...) PRINT_DEBUG(132, __VA_ARGS__)
164 : : #define PRINT_DEBUG_133(...) PRINT_DEBUG(133, __VA_ARGS__)
165 : : #define PRINT_DEBUG_134(...) PRINT_DEBUG(134, __VA_ARGS__)
166 : : #define PRINT_DEBUG_135(...) PRINT_DEBUG(135, __VA_ARGS__)
167 : : #define PRINT_DEBUG_136(...) PRINT_DEBUG(136, __VA_ARGS__)
168 : : #define PRINT_DEBUG_137(...) PRINT_DEBUG(137, __VA_ARGS__)
169 : : #define PRINT_DEBUG_138(...) PRINT_DEBUG(138, __VA_ARGS__)
170 : : #define PRINT_DEBUG_139(...) PRINT_DEBUG(139, __VA_ARGS__)
171 : : #define PRINT_DEBUG_140(...) PRINT_DEBUG(140, __VA_ARGS__)
172 : : #define PRINT_DEBUG_141(...) PRINT_DEBUG(141, __VA_ARGS__)
173 : : #define PRINT_DEBUG_142(...) PRINT_DEBUG(142, __VA_ARGS__)
174 : : #define PRINT_DEBUG_143(...) PRINT_DEBUG(143, __VA_ARGS__)
175 : : #define PRINT_DEBUG_144(...) PRINT_DEBUG(144, __VA_ARGS__)
176 : : #define PRINT_DEBUG_145(...) PRINT_DEBUG(145, __VA_ARGS__)
177 : : #define PRINT_DEBUG_146(...) PRINT_DEBUG(146, __VA_ARGS__)
178 : : #define PRINT_DEBUG_147(...) PRINT_DEBUG(147, __VA_ARGS__)
179 : : #define PRINT_DEBUG_148(...) PRINT_DEBUG(148, __VA_ARGS__)
180 : : #define PRINT_DEBUG_149(...) PRINT_DEBUG(149, __VA_ARGS__)
181 : : #define PRINT_DEBUG_150(...) PRINT_DEBUG(150, __VA_ARGS__)
182 : : #define PRINT_DEBUG_151(...) PRINT_DEBUG(151, __VA_ARGS__)
183 : : #define PRINT_DEBUG_152(...) PRINT_DEBUG(152, __VA_ARGS__)
184 : : #define PRINT_DEBUG_153(...) PRINT_DEBUG(153, __VA_ARGS__)
185 : : #define PRINT_DEBUG_154(...) PRINT_DEBUG(154, __VA_ARGS__)
186 : : #define PRINT_DEBUG_155(...) PRINT_DEBUG(155, __VA_ARGS__)
187 : : #define PRINT_DEBUG_156(...) PRINT_DEBUG(156, __VA_ARGS__)
188 : : #define PRINT_DEBUG_157(...) PRINT_DEBUG(157, __VA_ARGS__)
189 : : #define PRINT_DEBUG_158(...) PRINT_DEBUG(158, __VA_ARGS__)
190 : : #define PRINT_DEBUG_159(...) PRINT_DEBUG(159, __VA_ARGS__)
191 : : #define PRINT_DEBUG_160(...) PRINT_DEBUG(160, __VA_ARGS__)
192 : : #define PRINT_DEBUG_161(...) PRINT_DEBUG(161, __VA_ARGS__)
193 : : #define PRINT_DEBUG_162(...) PRINT_DEBUG(162, __VA_ARGS__)
194 : : #define PRINT_DEBUG_163(...) PRINT_DEBUG(163, __VA_ARGS__)
195 : : #define PRINT_DEBUG_164(...) PRINT_DEBUG(164, __VA_ARGS__)
196 : : #define PRINT_DEBUG_165(...) PRINT_DEBUG(165, __VA_ARGS__)
197 : : #define PRINT_DEBUG_166(...) PRINT_DEBUG(166, __VA_ARGS__)
198 : : #define PRINT_DEBUG_167(...) PRINT_DEBUG(167, __VA_ARGS__)
199 : : #define PRINT_DEBUG_168(...) PRINT_DEBUG(168, __VA_ARGS__)
200 : : #define PRINT_DEBUG_169(...) PRINT_DEBUG(169, __VA_ARGS__)
201 : : #define PRINT_DEBUG_170(...) PRINT_DEBUG(170, __VA_ARGS__)
202 : : #define PRINT_DEBUG_171(...) PRINT_DEBUG(171, __VA_ARGS__)
203 : : #define PRINT_DEBUG_172(...) PRINT_DEBUG(172, __VA_ARGS__)
204 : : #define PRINT_DEBUG_173(...) PRINT_DEBUG(173, __VA_ARGS__)
205 : : #define PRINT_DEBUG_174(...) PRINT_DEBUG(174, __VA_ARGS__)
206 : : #define PRINT_DEBUG_175(...) PRINT_DEBUG(175, __VA_ARGS__)
207 : : #define PRINT_DEBUG_176(...) PRINT_DEBUG(176, __VA_ARGS__)
208 : : #define PRINT_DEBUG_177(...) PRINT_DEBUG(177, __VA_ARGS__)
209 : : #define PRINT_DEBUG_178(...) PRINT_DEBUG(178, __VA_ARGS__)
210 : : #define PRINT_DEBUG_179(...) PRINT_DEBUG(179, __VA_ARGS__)
211 : : #define PRINT_DEBUG_180(...) PRINT_DEBUG(180, __VA_ARGS__)
212 : : #define PRINT_DEBUG_181(...) PRINT_DEBUG(181, __VA_ARGS__)
213 : : #define PRINT_DEBUG_182(...) PRINT_DEBUG(182, __VA_ARGS__)
214 : : #define PRINT_DEBUG_183(...) PRINT_DEBUG(183, __VA_ARGS__)
215 : : #define PRINT_DEBUG_184(...) PRINT_DEBUG(184, __VA_ARGS__)
216 : : #define PRINT_DEBUG_185(...) PRINT_DEBUG(185, __VA_ARGS__)
217 : : #define PRINT_DEBUG_186(...) PRINT_DEBUG(186, __VA_ARGS__)
218 : : #define PRINT_DEBUG_187(...) PRINT_DEBUG(187, __VA_ARGS__)
219 : : #define PRINT_DEBUG_188(...) PRINT_DEBUG(188, __VA_ARGS__)
220 : : #define PRINT_DEBUG_189(...) PRINT_DEBUG(189, __VA_ARGS__)
221 : : #define PRINT_DEBUG_190(...) PRINT_DEBUG(190, __VA_ARGS__)
222 : : #define PRINT_DEBUG_191(...) PRINT_DEBUG(191, __VA_ARGS__)
223 : : #define PRINT_DEBUG_192(...) PRINT_DEBUG(192, __VA_ARGS__)
224 : : #define PRINT_DEBUG_193(...) PRINT_DEBUG(193, __VA_ARGS__)
225 : : #define PRINT_DEBUG_194(...) PRINT_DEBUG(194, __VA_ARGS__)
226 : : #define PRINT_DEBUG_195(...) PRINT_DEBUG(195, __VA_ARGS__)
227 : : #define PRINT_DEBUG_196(...) PRINT_DEBUG(196, __VA_ARGS__)
228 : : #define PRINT_DEBUG_197(...) PRINT_DEBUG(197, __VA_ARGS__)
229 : : #define PRINT_DEBUG_198(...) PRINT_DEBUG(198, __VA_ARGS__)
230 : : #define PRINT_DEBUG_199(...) PRINT_DEBUG(199, __VA_ARGS__)
231 : : #define PRINT_DEBUG_200(...) PRINT_DEBUG(200, __VA_ARGS__)
232 : : #define PRINT_DEBUG_201(...) PRINT_DEBUG(201, __VA_ARGS__)
233 : : #define PRINT_DEBUG_202(...) PRINT_DEBUG(202, __VA_ARGS__)
234 : : #define PRINT_DEBUG_203(...) PRINT_DEBUG(203, __VA_ARGS__)
235 : : #define PRINT_DEBUG_204(...) PRINT_DEBUG(204, __VA_ARGS__)
236 : : #define PRINT_DEBUG_205(...) PRINT_DEBUG(205, __VA_ARGS__)
237 : : #define PRINT_DEBUG_206(...) PRINT_DEBUG(206, __VA_ARGS__)
238 : : #define PRINT_DEBUG_207(...) PRINT_DEBUG(207, __VA_ARGS__)
239 : : #define PRINT_DEBUG_208(...) PRINT_DEBUG(208, __VA_ARGS__)
240 : : #define PRINT_DEBUG_209(...) PRINT_DEBUG(209, __VA_ARGS__)
241 : : #define PRINT_DEBUG_210(...) PRINT_DEBUG(210, __VA_ARGS__)
242 : : #define PRINT_DEBUG_211(...) PRINT_DEBUG(211, __VA_ARGS__)
243 : : #define PRINT_DEBUG_212(...) PRINT_DEBUG(212, __VA_ARGS__)
244 : : #define PRINT_DEBUG_213(...) PRINT_DEBUG(213, __VA_ARGS__)
245 : : #define PRINT_DEBUG_214(...) PRINT_DEBUG(214, __VA_ARGS__)
246 : : #define PRINT_DEBUG_215(...) PRINT_DEBUG(215, __VA_ARGS__)
247 : : #define PRINT_DEBUG_216(...) PRINT_DEBUG(216, __VA_ARGS__)
248 : : #define PRINT_DEBUG_217(...) PRINT_DEBUG(217, __VA_ARGS__)
249 : : #define PRINT_DEBUG_218(...) PRINT_DEBUG(218, __VA_ARGS__)
250 : : #define PRINT_DEBUG_219(...) PRINT_DEBUG(219, __VA_ARGS__)
251 : : #define PRINT_DEBUG_220(...) PRINT_DEBUG(220, __VA_ARGS__)
252 : : #define PRINT_DEBUG_221(...) PRINT_DEBUG(221, __VA_ARGS__)
253 : : #define PRINT_DEBUG_222(...) PRINT_DEBUG(222, __VA_ARGS__)
254 : : #define NUM_DEBUG_FLAGS 224
255 : :
256 : : #define PRINT_ERROR(...) CubitMessage::instance()->print_error(CubitString::format(__VA_ARGS__))
257 : : #define PRINT_WARNING(...) CubitMessage::instance()->print_warning(CubitString::format(__VA_ARGS__))
258 : : #define PRINT_INFO(...) CubitMessage::instance()->print_info(CubitString::format(__VA_ARGS__))
259 : : #define DIAGNOSTIC(...) CubitMessage::instance()->print_diagnostic(CubitString::format(__VA_ARGS__))
260 : : #define DIAGNOSTIC_FLAG CubitMessage::instance()->get_diagnostic_flag
261 : : #define DEBUG_FLAG CubitMessage::instance()->debug_flag
262 : : #define GET_INFO_FLAG CubitMessage::instance()->get_info_flag
263 : : #define SET_INFO_FLAG CubitMessage::instance()->set_info_flag
264 : : #define SET_WARNING_FLAG CubitMessage::instance()->set_warning_flag
265 : : #define GET_WARNING_FLAG CubitMessage::instance()->get_warning_flag
266 : : #define SET_ERROR_FLAG CubitMessage::instance()->set_error_flag
267 : : #define GET_ERROR_FLAG CubitMessage::instance()->get_error_flag
268 : : #define DEBUG_FLAG_SET CubitMessage::instance()->is_debug_flag_set
269 : : #define PRINT_DEBUG(x, ...) if(DEBUG_FLAG_SET(x)) CubitMessage::instance()->print_debug(CubitString::format(__VA_ARGS__))
270 : : #define PRINT_FREE CubitMessage::free_instance()
271 : :
272 : : class CubitString;
273 : : class CubitMessage;
274 : :
275 : : class CUBIT_UTIL_EXPORT MessageFlag
276 : : {
277 : : friend class CubitMessage;
278 : : public:
279 : : ~MessageFlag();
280 : : private:
281 : : MessageFlag();
282 : : MessageFlag(int flag_number, const char *desc);
283 : :
284 : : void output();
285 : :
286 : : // Member variables
287 : : int flagNumber;
288 : : int setting;
289 : : const char *description;
290 : : CubitString *filename;
291 : : std::ofstream *outputStream;
292 : : };
293 : :
294 : : class CUBIT_UTIL_EXPORT CubitMessage
295 : : {
296 : : protected:
297 : :
298 : : static CubitMessage* instance_;
299 : : //- static pointer to unique instance of this class
300 : :
301 : : static CubitMessageHandler* mHandler;
302 : : //- static pointer to the message output handler
303 : :
304 : : static CubitMessageErrorHandler* mErrorHandler;
305 : : //- static pointer to the message context handler
306 : :
307 : : static MessageFlag staticDebugFlag[];
308 : :
309 : : MessageFlag *debugFlag;
310 : : //- debug flag, used with internal_error
311 : :
312 : : static int infoFlag;
313 : : //- info flag, used with internal_error
314 : :
315 : : static int warningFlag;
316 : : //- warning flag, used with internal_error
317 : :
318 : : static int errorFlag;
319 : : //- error flag, used with internal_error
320 : :
321 : : static int diagnosticFlag;
322 : : //- diagnostic flag, used with internal_error
323 : :
324 : : int currentDebugFlag;
325 : :
326 : : static int errorCount;
327 : : //- static variable to track the errors that occured in the
328 : : //- a session. Only gets set when PRINT_ERROR is called.
329 : :
330 : : static int expectedStartErrorCount;
331 : : static int expectedEndErrorCount;
332 : : static bool expectedLessErrorCountAccepted;
333 : :
334 : : static int warningCount;
335 : : //- static variable to track the warnings that occured in the
336 : : //- a session. Only gets set when PRINT_WARNING is called.
337 : :
338 : : static std::ofstream *loggingStream;
339 : : static CubitString *loggingFile;
340 : : //- Stream pointer for logging of internal_error messages.
341 : : //- If NULL, output goes to terminal only (except for debug)
342 : : //- If Non-NULL, output goes to both terminal and stream.
343 : :
344 : : static std::ofstream *loggingErrorStream;
345 : : static CubitString *loggingErrorFile;
346 : : //- Stream pointer for logging of only ERROR messages.
347 : : //- If NULL, ERROR output goes to normal places only
348 : : //- If Non-NULL, output goes to both this stream, and all other places.
349 : :
350 : : void add_to_error_count();
351 : : //- Increments the errorCount variable. Keep private (GDS).
352 : :
353 : : void add_to_warning_count();
354 : : //- Increments the errorCount variable. Keep private (GDS).
355 : : void set_debug_stream(const int index, std::ofstream *output_stream);
356 : : //- Set the output stream for this debug flag to output_stream.
357 : :
358 : : void remove_debug_stream(const int index);
359 : : //- Close and delete the stream if only one use.
360 : :
361 : : int find_file_use(const CubitString &filename);
362 : : int count_stream_users(const std::ofstream *stream);
363 : :
364 : : CubitMessage ();
365 : : //- Class Constructor. (Not callable by user code. Class is constructed
366 : : //- by the {instance()} member function.
367 : :
368 : : public:
369 : :
370 : : static CubitMessage* instance();
371 : : static void free_instance();
372 : : //- Controlled access and creation of the sole instance of this class.
373 : :
374 : : virtual ~CubitMessage();
375 : : //- Class Destructor.
376 : :
377 : : static void delete_instance();
378 : :
379 : : void set_logging_file_setting(const CubitString &filename, CubitBoolean resume_flag = CUBIT_FALSE);
380 : : void set_debug_file_setting(const int index, const CubitString &filename);
381 : :
382 : : CubitString logging_filename() const;
383 : : CubitString logging_errors_filename() const;
384 : :
385 : : int is_debug_flag_set( int flag );
386 : : //- for use with the PRINT_DEBUG macro only
387 : :
388 : : //static int get_debug_for_setting_handler(const int index)
389 : : //{return staticDebugFlag[index].setting;};
390 : : // static void set_debug_for_setting_handler(const int index, const int value)
391 : : //{staticDebugFlag[index].setting = value;};
392 : : //- for use with SettingHandler.cpp code only
393 : :
394 : : int debug_flag(const int index);
395 : : void debug_flag(const int index, const int flag);
396 : : int number_of_debug_flags();
397 : : //- debug flag, used with internal_error
398 : :
399 : 0 : virtual void set_debug_flag_gui(bool /*flag*/){};
400 : 0 : virtual int is_debug_flag_gui_set(){return 0;};
401 : 0 : virtual int print_debug_gui( const char* /* format*/ , ... ){return 0;};
402 : : //- write out a debug message (from GUI only)
403 : : //- used for GUI Debugging (CAT-only)
404 : :
405 : : static bool get_info_flag();
406 : : static void set_info_flag(bool flag);
407 : : //- info flag, used with internal_error
408 : :
409 : : static bool get_warning_flag();
410 : : static void set_warning_flag(bool flag);
411 : : //- warning flag, used with internal_error
412 : :
413 : : static bool get_error_flag();
414 : : static void set_error_flag(bool flag);
415 : : //- error flag, used with internal_error
416 : :
417 : : static bool get_diagnostic_flag();
418 : : static void set_diagnostic_flag(bool flag);
419 : : //- diagnostic flag, used with internal_error
420 : :
421 : : virtual void internal_error(const int message_type, std::ofstream *output_stream,
422 : : const CubitString& str);
423 : : //- write out a debug/info/error/warning message
424 : :
425 : : int print_error(const CubitString& str);
426 : : //- write out an error message
427 : :
428 : : int print_warning(const CubitString& str);
429 : : //- write out a warning message
430 : :
431 : : int print_info(const CubitString& str);
432 : : //- write out an info message
433 : :
434 : : int print_debug(const CubitString& str);
435 : : //- write out a debug message
436 : :
437 : : void print_diagnostic(const CubitString& str);
438 : : //- write out a diagnostic message
439 : :
440 : : int reset_error_count(int value = 0);
441 : : //- Sets the errorCount variable to 0;
442 : : //- Returns current value of variable.
443 : :
444 : : int error_count();
445 : : //- Returns the value of the errorCount variable;
446 : : //- This errorCount variable is incremented only if print_error is called;
447 : : //- there is not a public interface to only set the flag.
448 : : //- My reasoning for that is that there should be
449 : : //- some notification of an error so that the
450 : : //- user can figure out why this function returns TRUE.
451 : :
452 : : int reset_warning_count(int value = 0);
453 : : //- Sets the warningCount variable to 0;
454 : : //- Returns current value of variable.
455 : :
456 : : int warning_count();
457 : : //- Returns the value of the warningCount variable;
458 : : //- This warningCount variable is incremented only if print_warning is called;
459 : : //- there is not a public interface to only set the flag.
460 : : //- My reasoning for that is that there should be
461 : : //- some notification of an error so that the
462 : : //- user can figure out why this function returns TRUE.
463 : :
464 : : void output_debug_information(int from=1, int to=-1, int step=1);
465 : : void output_debug_information(CubitString &match);
466 : : void output_logging_information();
467 : :
468 : : static char* get_logging_file_setting();
469 : : static void set_logging_file_setting(const char* file);
470 : : static void set_error_logging_file_setting(const char* file, CubitBoolean resume_flag = CUBIT_FALSE);
471 : :
472 : : static void initialize_settings();
473 : :
474 : : static void set_message_handler(CubitMessageHandler *handler);
475 : : static CubitMessageHandler* get_message_handler();
476 : :
477 : : static void set_error_handler(CubitMessageErrorHandler *handler);
478 : : static CubitMessageErrorHandler* get_error_handler();
479 : :
480 : : //! start an expected error count
481 : : //! also set whether an error count less than that is acceptable at stop time
482 : : //! X number of errors will be suppressed, and will print out with a prefix of EXPECTED_ERROR:
483 : : void start_expected_error_count(int error_count, bool less_than_accepted);
484 : : //! stop an expected error count
485 : : //! if the remaining number of expected errors is zero, we simply clean up.
486 : : //! otherwise, an ERROR is reported
487 : : //! if the CUBIT_CTEST environment variable is set, a cdash formatted message will be printed out
488 : : void stop_expected_error_count(const CubitString& message);
489 : :
490 : : }; // End of Class CubitMessage
491 : :
492 : : inline int
493 : 989651 : CubitMessage::debug_flag(const int index)
494 : 989651 : {return debugFlag[index].setting;}
495 : :
496 : : inline void
497 : : CubitMessage::debug_flag(const int index, const int flag)
498 : : {debugFlag[index].setting = flag;}
499 : :
500 : : inline bool
501 : 0 : CubitMessage::get_info_flag()
502 : 0 : {return !!infoFlag;}
503 : :
504 : : inline void
505 : 0 : CubitMessage::set_info_flag(bool flag)
506 : 0 : {infoFlag = flag;}
507 : :
508 : : inline bool
509 : 0 : CubitMessage::get_warning_flag()
510 : 0 : {return !!warningFlag;}
511 : :
512 : : inline void
513 : 0 : CubitMessage::set_warning_flag(bool flag)
514 : 0 : {warningFlag = flag;}
515 : :
516 : : inline bool
517 : 0 : CubitMessage::get_error_flag()
518 : 0 : {return !!errorFlag;}
519 : :
520 : : inline void
521 : 0 : CubitMessage::set_error_flag(bool flag)
522 : 0 : {errorFlag = flag;}
523 : :
524 : : inline bool
525 : 0 : CubitMessage::get_diagnostic_flag()
526 : 0 : {return !!diagnosticFlag;}
527 : :
528 : : inline void
529 : 0 : CubitMessage::set_diagnostic_flag(bool flag)
530 : 0 : {diagnosticFlag = flag;}
531 : :
532 : : #endif
533 : :
|