LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
MFStatusUpdater.cc
Go to the documentation of this file.
1 #define MFSU_IMPL
3 // vim: set sw=2 expandtab :
4 
12 
13 #include <sstream>
14 #include <string>
15 #include <tuple>
16 #include <utility>
17 
18 using namespace std;
19 using namespace std::string_literals;
20 
21 #define MFSU_WATCH_UPDATER(cb) \
22  areg.s##cb.watch(this, &MFStatusUpdater::updateStatusTo##cb)
23 
24 namespace art {
25 
26  MFStatusUpdater::~MFStatusUpdater() {}
27 
28  MFStatusUpdater::MFStatusUpdater(ActivityRegistry& areg)
29  {
30  MFSU_WATCH_UPDATER(PostBeginJob);
31  MFSU_WATCH_UPDATER(PostEndJob);
32  MFSU_WATCH_UPDATER(PostSourceConstruction);
33  MFSU_WATCH_UPDATER(PreSourceEvent);
34  MFSU_WATCH_UPDATER(PostSourceEvent);
35  MFSU_WATCH_UPDATER(PreSourceSubRun);
36  MFSU_WATCH_UPDATER(PostSourceSubRun);
37  MFSU_WATCH_UPDATER(PreSourceRun);
38  MFSU_WATCH_UPDATER(PostSourceRun);
39  MFSU_WATCH_UPDATER(PreOpenFile);
40  MFSU_WATCH_UPDATER(PostOpenFile);
41  MFSU_WATCH_UPDATER(PreCloseFile);
42  MFSU_WATCH_UPDATER(PostCloseFile);
43  MFSU_WATCH_UPDATER(PreProcessEvent);
44  MFSU_WATCH_UPDATER(PostProcessEvent);
45  MFSU_WATCH_UPDATER(PreBeginRun);
46  MFSU_WATCH_UPDATER(PostBeginRun);
47  MFSU_WATCH_UPDATER(PreEndRun);
48  MFSU_WATCH_UPDATER(PostEndRun);
49  MFSU_WATCH_UPDATER(PreBeginSubRun);
50  MFSU_WATCH_UPDATER(PostBeginSubRun);
51  MFSU_WATCH_UPDATER(PreEndSubRun);
52  MFSU_WATCH_UPDATER(PostEndSubRun);
53  MFSU_WATCH_UPDATER(PreProcessPath);
54  MFSU_WATCH_UPDATER(PostProcessPath);
55  MFSU_WATCH_UPDATER(PrePathBeginRun);
56  MFSU_WATCH_UPDATER(PostPathBeginRun);
57  MFSU_WATCH_UPDATER(PrePathEndRun);
58  MFSU_WATCH_UPDATER(PostPathEndRun);
59  MFSU_WATCH_UPDATER(PrePathBeginSubRun);
60  MFSU_WATCH_UPDATER(PostPathBeginSubRun);
61  MFSU_WATCH_UPDATER(PrePathEndSubRun);
62  MFSU_WATCH_UPDATER(PostPathEndSubRun);
63  MFSU_WATCH_UPDATER(PreModuleConstruction);
64  MFSU_WATCH_UPDATER(PostModuleConstruction);
65  MFSU_WATCH_UPDATER(PreModuleBeginJob);
66  MFSU_WATCH_UPDATER(PostModuleBeginJob);
67  MFSU_WATCH_UPDATER(PreModuleEndJob);
68  MFSU_WATCH_UPDATER(PostModuleEndJob);
69  MFSU_WATCH_UPDATER(PreModule);
70  MFSU_WATCH_UPDATER(PostModule);
71  MFSU_WATCH_UPDATER(PreModuleBeginRun);
72  MFSU_WATCH_UPDATER(PostModuleBeginRun);
73  MFSU_WATCH_UPDATER(PreModuleEndRun);
74  MFSU_WATCH_UPDATER(PostModuleEndRun);
75  MFSU_WATCH_UPDATER(PreModuleBeginSubRun);
76  MFSU_WATCH_UPDATER(PostModuleBeginSubRun);
77  MFSU_WATCH_UPDATER(PreModuleEndSubRun);
78  MFSU_WATCH_UPDATER(PostModuleEndSubRun);
79  }
80 
81 #undef MFSU_WATCH_UPDATER
82 
84  {
85  mf::SetModuleName("PostBeginJob"s);
86  mf::SetIteration("BeforeEvents"s);
87  }
88 
89  MFSU_0_ARG_UPDATER_DEFN(PostEndJob) { mf::SetModuleName("PostEndJob"s); }
90 
91  MFSU_1_ARG_UPDATER_DEFN(PostSourceConstruction)
92  {
93  mf::SetModuleName("PostSourceConstruction"s);
94  mf::SetIteration("SourceConstruction"s);
95  }
96 
97  MFSU_0_ARG_UPDATER_DEFN(PreSourceEvent) { mf::SetModuleName("SourceEvent"s); }
98 
99  MFSU_1_ARG_UPDATER_DEFN(PostSourceEvent)
100  {
101  mf::SetModuleName("PostSourceEvent"s);
102  }
103 
104  MFSU_0_ARG_UPDATER_DEFN(PreSourceSubRun)
105  {
106  mf::SetModuleName("SourceSubRun"s);
107  }
108 
109  MFSU_1_ARG_UPDATER_DEFN(PostSourceSubRun)
110  {
111  mf::SetModuleName("PostSourceSubRun"s);
112  }
113 
114  MFSU_0_ARG_UPDATER_DEFN(PreSourceRun) { mf::SetModuleName("SourceRun"s); }
115 
116  MFSU_1_ARG_UPDATER_DEFN(PostSourceRun)
117  {
118  mf::SetModuleName("PostSourceRun"s);
119  }
120 
121  MFSU_0_ARG_UPDATER_DEFN(PreOpenFile) { mf::SetModuleName("OpenFile"s); }
122 
123  MFSU_1_ARG_UPDATER_DEFN(PostOpenFile) { mf::SetModuleName("PostOpenFile"s); }
124 
125  MFSU_0_ARG_UPDATER_DEFN(PreCloseFile) { mf::SetModuleName("CloseFile"s); }
126 
127  MFSU_0_ARG_UPDATER_DEFN(PostCloseFile)
128  {
129  mf::SetModuleName("PostCloseFile"s);
130  }
131 
132  MFSU_1_ARG_UPDATER_DEFN(PreProcessEvent)
133  {
134  mf::SetModuleName("ProcessEvent"s);
135  std::ostringstream os;
136  os << arg1.id();
137  mf::SetIteration(os.str());
138  }
139 
140  MFSU_1_ARG_UPDATER_DEFN(PostProcessEvent)
141  {
142  mf::SetModuleName("PostProcessEvent"s);
143  }
144 
146  {
147  mf::SetModuleName("BeginRun"s);
148  std::ostringstream os;
149  os << arg1.id();
150  mf::SetIteration(os.str());
151  }
152 
153  MFSU_1_ARG_UPDATER_DEFN(PostBeginRun) { mf::SetModuleName("PostBeginRun"s); }
154 
156  {
157  mf::SetModuleName("EndRun"s);
158  std::stringstream os;
159  os << arg1;
160  mf::SetIteration(os.str());
161  }
162 
163  MFSU_1_ARG_UPDATER_DEFN(PostEndRun) { mf::SetModuleName("PostEndRun"s); }
164 
165  MFSU_1_ARG_UPDATER_DEFN(PreBeginSubRun)
166  {
167  mf::SetModuleName("BeginSubRun"s);
168  std::ostringstream os;
169  os << arg1.id();
170  mf::SetIteration(os.str());
171  }
172 
173  MFSU_1_ARG_UPDATER_DEFN(PostBeginSubRun)
174  {
175  mf::SetModuleName("PostBeginSubRun"s);
176  }
177 
179  {
180  mf::SetModuleName("EndSubRun"s);
181  std::ostringstream os;
182  os << arg1;
183  mf::SetIteration(os.str());
184  }
185 
186  MFSU_1_ARG_UPDATER_DEFN(PostEndSubRun)
187  {
188  mf::SetModuleName("PostEndSubRun"s);
189  }
190 
191  MFSU_1_ARG_UPDATER_DEFN(PreProcessPath)
192  {
193  mf::SetModuleName("ProcessPath "s + arg1);
194  }
195 
196  MFSU_2_ARG_UPDATER_DEFN(PostProcessPath)
197  {
198  mf::SetModuleName("PostProcessPath "s + arg1);
199  }
200 
201  MFSU_1_ARG_UPDATER_DEFN(PrePathBeginRun)
202  {
203  mf::SetModuleName("PathBeginRun "s + arg1);
204  }
205 
206  MFSU_2_ARG_UPDATER_DEFN(PostPathBeginRun)
207  {
208  mf::SetModuleName("PostPathBeginRun "s + arg1);
209  }
210 
211  MFSU_1_ARG_UPDATER_DEFN(PrePathEndRun)
212  {
213  mf::SetModuleName("PathEndRun "s + arg1);
214  }
215 
216  MFSU_2_ARG_UPDATER_DEFN(PostPathEndRun)
217  {
218  mf::SetModuleName("PostPathEndRun "s + arg1);
219  }
220 
221  MFSU_1_ARG_UPDATER_DEFN(PrePathBeginSubRun)
222  {
223  mf::SetModuleName("PathBeginSubRun "s + arg1);
224  }
225 
226  MFSU_2_ARG_UPDATER_DEFN(PostPathBeginSubRun)
227  {
228  mf::SetModuleName("PostPathBeginSubRun "s + arg1);
229  }
230 
231  MFSU_1_ARG_UPDATER_DEFN(PrePathEndSubRun)
232  {
233  mf::SetModuleName("PathEndSubRun "s + arg1);
234  }
235 
236  MFSU_2_ARG_UPDATER_DEFN(PostPathEndSubRun)
237  {
238  mf::SetModuleName("PostPathEndSubRun "s + arg1);
239  }
240 
241  MFSU_1_ARG_UPDATER_DEFN(PreModuleConstruction)
242  {
243  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
244  "@Construction"s);
245  mf::SetIteration("ModuleConstruction"s);
246  }
247 
248  MFSU_1_ARG_UPDATER_DEFN(PostModuleConstruction)
249  {
250  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
251  "@Construction"s);
252  }
253 
254  MFSU_2_ARG_UPDATER_DEFN(PostBeginJobWorkers)
255  {
256  throw cet::exception("InternalError"s) << "NOP: do not call";
257  }
258 
259  MFSU_1_ARG_UPDATER_DEFN(PreModuleBeginJob)
260  {
261  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
262  "@BeginJob"s);
263  mf::SetIteration("ModuleBeginJob"s);
264  }
265 
266  MFSU_1_ARG_UPDATER_DEFN(PostModuleBeginJob)
267  {
268  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
269  "@BeginJob"s);
270  }
271 
272  MFSU_1_ARG_UPDATER_DEFN(PreModuleEndJob)
273  {
274  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
275  "@EndJob"s);
276  mf::SetIteration("ModuleEndJob"s);
277  }
278 
279  MFSU_1_ARG_UPDATER_DEFN(PostModuleEndJob)
280  {
281  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
282  "@EndJob"s);
283  }
284 
286  {
287  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
288  "@BeginModule"s);
289  }
290 
292  {
293  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
294  "@EndModule"s);
295  }
296 
297  MFSU_1_ARG_UPDATER_DEFN(PreModuleBeginRun)
298  {
299  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
300  "@BeginRun"s);
301  }
302 
303  MFSU_1_ARG_UPDATER_DEFN(PostModuleBeginRun)
304  {
305  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
306  "@BeginRun"s);
307  }
308 
309  MFSU_1_ARG_UPDATER_DEFN(PreModuleEndRun)
310  {
311  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
312  "@EndRun"s);
313  }
314 
315  MFSU_1_ARG_UPDATER_DEFN(PostModuleEndRun)
316  {
317  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
318  "@EndRun"s);
319  }
320 
321  MFSU_1_ARG_UPDATER_DEFN(PreModuleBeginSubRun)
322  {
323  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
324  "@BeginSubRun"s);
325  }
326 
327  MFSU_1_ARG_UPDATER_DEFN(PostModuleBeginSubRun)
328  {
329  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
330  "@BeginSubRun"s);
331  }
332 
333  MFSU_1_ARG_UPDATER_DEFN(PreModuleEndSubRun)
334  {
335  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
336  "@EndSubRun"s);
337  }
338 
339  MFSU_1_ARG_UPDATER_DEFN(PostModuleEndSubRun)
340  {
341  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
342  "@EndSubRun"s);
343  }
344 
345 } // namespace art
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
#define MFSU_2_ARG_UPDATER_DEFN(cb)
STL namespace.
#define MFSU_WATCH_UPDATER(cb)
#define MFSU_1_ARG_UPDATER_DEFN(cb)
HLT enums.
#define MFSU_0_ARG_UPDATER_DEFN(cb)
void SetModuleName(string const &val)
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33