Bridge++  Ver. 1.3.x
bridgeIO.cpp
Go to the documentation of this file.
1 
14 #include "bridgeIO.h"
15 
16 #include "commonParameters.h"
17 #include "threadManager_OpenMP.h"
18 
19 //====================================================================
20 // verbose output for c style
21 // default verbose level, node 0
22 
23 namespace Bridge {
24  const std::string BridgeIO::class_name = "BridgeIO";
25 
26  //====================================================================
28  BridgeIO::set_verbose_level(const std::string& str)
29  {
31 
32  if (str == "Crucial") return Bridge::CRUCIAL;
33 
34  if (str == "General") return Bridge::GENERAL;
35 
36  if (str == "Detailed") return Bridge::DETAILED;
37 
38  if (str == "Paranoiac") return Bridge::PARANOIAC;
39 
40  if (str == "NULL") return CommonParameters::Vlevel();
41 
42  return Bridge::GENERAL;
43  }
44 
45 
46  //====================================================================
47  void
48  BridgeIO::crucial(const char *format, ...)
49  {
50  va_list arg;
51 
52 #pragma omp barrier
53 #pragma omp master
54  {
55  va_start(arg, format);
57  va_end(arg);
58  }
59 #pragma omp barrier
60  }
61 
62 
63  //====================================================================
64  void
65  BridgeIO::general(const char *format, ...)
66  {
67  va_list arg;
68 
69 #pragma omp barrier
70 #pragma omp master
71  {
72  va_start(arg, format);
74  va_end(arg);
75  }
76 #pragma omp barrier
77  }
78 
79 
80  //====================================================================
81  void
82  BridgeIO::detailed(const char *format, ...)
83  {
84  va_list arg;
85 
86 #pragma omp barrier
87 #pragma omp master
88  {
89  va_start(arg, format);
91  va_end(arg);
92  }
93 #pragma omp barrier
94  }
95 
96 
97  //====================================================================
98  void
99  BridgeIO::paranoiac(const char *format, ...)
100  {
101  va_list arg;
102 
103 #pragma omp barrier
104 #pragma omp master
105  {
106  va_start(arg, format);
108  va_end(arg);
109  }
110 #pragma omp barrier
111  }
112 
113 
114  //====================================================================
115  // input verbose level, node 0
116  void
117  BridgeIO::crucial(VerboseLevel vl, const char *format, ...)
118  {
119  va_list arg;
120 
121 #pragma omp barrier
122 #pragma omp master
123  {
124  va_start(arg, format);
125  print(vl, Bridge::CRUCIAL, 0, format, arg);
126  va_end(arg);
127  }
128 #pragma omp barrier
129  }
130 
131 
132  //====================================================================
133  void
134  BridgeIO::general(VerboseLevel vl, const char *format, ...)
135  {
136  va_list arg;
137 
138 #pragma omp barrier
139 #pragma omp master
140  {
141  va_start(arg, format);
142  print(vl, Bridge::GENERAL, 0, format, arg);
143  va_end(arg);
144  }
145 #pragma omp barrier
146  }
147 
148 
149  //====================================================================
150  void
151  BridgeIO::detailed(VerboseLevel vl, const char *format, ...)
152  {
153 #pragma omp barrier
154 #pragma omp master
155  {
156  va_list arg;
157 
158  va_start(arg, format);
159  print(vl, Bridge::DETAILED, 0, format, arg);
160  va_end(arg);
161  }
162 #pragma omp barrier
163  }
164 
165 
166  //====================================================================
167  void
168  BridgeIO::paranoiac(VerboseLevel vl, const char *format, ...)
169  {
170  va_list arg;
171 
172 #pragma omp barrier
173 #pragma omp master
174  {
175  va_start(arg, format);
176  print(vl, Bridge::PARANOIAC, 0, format, arg);
177  va_end(arg);
178  }
179 #pragma omp barrier
180  }
181 
182 
183  //====================================================================
184  // input verbose level, input node
185  void
186  BridgeIO::crucial(VerboseLevel vl, int node, const char *format, ...)
187  {
188  va_list arg;
189 
190 #pragma omp barrier
191 #pragma omp master
192  {
193  va_start(arg, format);
194  print(vl, Bridge::CRUCIAL, node, format, arg);
195  va_end(arg);
196  }
197 #pragma omp barrier
198  }
199 
200 
201  //====================================================================
202  void
203  BridgeIO::general(VerboseLevel vl, int node, const char *format, ...)
204  {
205  va_list arg;
206 
207 #pragma omp barrier
208 #pragma omp master
209  {
210  va_start(arg, format);
211  print(vl, Bridge::GENERAL, node, format, arg);
212  va_end(arg);
213  }
214 #pragma omp barrier
215  }
216 
217 
218  //====================================================================
219  void
220  BridgeIO::detailed(VerboseLevel vl, int node, const char *format, ...)
221  {
222  va_list arg;
223 
224 #pragma omp barrier
225 #pragma omp master
226  {
227  va_start(arg, format);
228  print(vl, Bridge::DETAILED, node, format, arg);
229  va_end(arg);
230  }
231 #pragma omp barrier
232  }
233 
234 
235  //====================================================================
236  void
237  BridgeIO::paranoiac(VerboseLevel vl, int node, const char *format, ...)
238  {
239  va_list arg;
240 
241 #pragma omp barrier
242 #pragma omp master
243  {
244  va_start(arg, format);
245  print(vl, Bridge::PARANOIAC, node, format, arg);
246  va_end(arg);
247  }
248 #pragma omp barrier
249  }
250 
251 
252  //====================================================================
253  void
254  BridgeIO::ildg(const char *format, ...)
255  {
256  va_list arg;
257 
258 #pragma omp barrier
259 #pragma omp master
260  {
261  va_start(arg, format);
262  vsprintf(buff_, format, arg);
263  va_end(arg);
264 
265  if ((Communicator::nodeid() == 0)) {
266  if (ildg_os_) {
267  *ildg_os_ << "@ILDG:" << buff_;
268  } else {
269  *os_ << "@ILDG:" << buff_;
270  }
271  }
272  }
273 #pragma omp barrier
274  }
275 
276 
277  //====================================================================
279 }
BridgeIO vout
Definition: bridgeIO.cpp:278
void detailed(const char *format,...)
Definition: bridgeIO.cpp:82
void general(const char *format,...)
Definition: bridgeIO.cpp:65
static Bridge::VerboseLevel Vlevel()
std::ostream * ildg_os_
Definition: bridgeIO.h:115
void ildg(const char *format,...)
Definition: bridgeIO.cpp:254
void paranoiac(const char *format,...)
Definition: bridgeIO.cpp:99
void crucial(const char *format,...)
Definition: bridgeIO.cpp:48
Bridge::VerboseLevel vl
Definition: checker.cpp:18
VerboseLevel
Definition: bridgeIO.h:39
void print(VerboseLevel level, VerboseLevel write_level, int node, const char *format, va_list &arg)
Definition: bridgeIO.h:99
static const std::string class_name
Definition: bridgeIO.h:49
char buff_[1024]
Definition: bridgeIO.h:116
BridgeIO for output under parallel environment with verbose level control.
Definition: bridgeIO.cpp:23
static int nodeid()
alternative name for self().
Definition: communicator.h:92
std::ostream * os_
Definition: bridgeIO.h:114
static VerboseLevel set_verbose_level(const std::string &str)
Definition: bridgeIO.cpp:28
static void assert_single_thread(const std::string &classname)
assert currently running on single thread.