LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
MFStatusUpdater.cc
Go to the documentation of this file.
1 #define MFSU_IMPL
3 // vim: set sw=2 expandtab :
4 
14 
15 #include <sstream>
16 #include <string>
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() noexcept = default;
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 
90  {
91  mf::SetModuleName("PostEndJob"s);
92  }
93 
94  MFSU_1_ARG_UPDATER_DEFN(PostSourceConstruction)
95  {
96  mf::SetModuleName("PostSourceConstruction"s);
97  mf::SetIteration("SourceConstruction"s);
98  }
99 
100  MFSU_1_ARG_UPDATER_DEFN(PreSourceEvent)
101  {
102  mf::SetModuleName("SourceEvent"s);
103  }
104 
105  MFSU_2_ARG_UPDATER_DEFN(PostSourceEvent)
106  {
107  mf::SetModuleName("PostSourceEvent"s);
108  }
109 
110  MFSU_0_ARG_UPDATER_DEFN(PreSourceSubRun)
111  {
112  mf::SetModuleName("SourceSubRun"s);
113  }
114 
115  MFSU_1_ARG_UPDATER_DEFN(PostSourceSubRun)
116  {
117  mf::SetModuleName("PostSourceSubRun"s);
118  }
119 
121  {
122  mf::SetModuleName("SourceRun"s);
123  }
124 
125  MFSU_1_ARG_UPDATER_DEFN(PostSourceRun)
126  {
127  mf::SetModuleName("PostSourceRun"s);
128  }
129 
131  {
132  mf::SetModuleName("OpenFile"s);
133  }
134 
136  {
137  mf::SetModuleName("PostOpenFile"s);
138  }
139 
141  {
142  mf::SetModuleName("CloseFile"s);
143  }
144 
145  MFSU_0_ARG_UPDATER_DEFN(PostCloseFile)
146  {
147  mf::SetModuleName("PostCloseFile"s);
148  }
149 
150  MFSU_2_ARG_UPDATER_DEFN(PreProcessEvent)
151  {
152  mf::SetModuleName("ProcessEvent"s);
153  std::ostringstream os;
154  os << arg1.id();
155  mf::SetIteration(os.str());
156  }
157 
158  MFSU_2_ARG_UPDATER_DEFN(PostProcessEvent)
159  {
160  mf::SetModuleName("PostProcessEvent"s);
161  }
162 
164  {
165  mf::SetModuleName("BeginRun"s);
166  std::ostringstream os;
167  os << arg1.id();
168  mf::SetIteration(os.str());
169  }
170 
172  {
173  mf::SetModuleName("PostBeginRun"s);
174  }
175 
177  {
178  mf::SetModuleName("EndRun"s);
179  std::stringstream os;
180  os << arg1;
181  mf::SetIteration(os.str());
182  }
183 
185  {
186  mf::SetModuleName("PostEndRun"s);
187  }
188 
189  MFSU_1_ARG_UPDATER_DEFN(PreBeginSubRun)
190  {
191  mf::SetModuleName("BeginSubRun"s);
192  std::ostringstream os;
193  os << arg1.id();
194  mf::SetIteration(os.str());
195  }
196 
197  MFSU_1_ARG_UPDATER_DEFN(PostBeginSubRun)
198  {
199  mf::SetModuleName("PostBeginSubRun"s);
200  }
201 
203  {
204  mf::SetModuleName("EndSubRun"s);
205  std::ostringstream os;
206  os << arg1;
207  mf::SetIteration(os.str());
208  }
209 
210  MFSU_1_ARG_UPDATER_DEFN(PostEndSubRun)
211  {
212  mf::SetModuleName("PostEndSubRun"s);
213  }
214 
215  MFSU_1_ARG_UPDATER_DEFN(PreProcessPath)
216  {
217  mf::SetModuleName("ProcessPath "s + arg1.pathName());
218  }
219 
220  MFSU_2_ARG_UPDATER_DEFN(PostProcessPath)
221  {
222  mf::SetModuleName("PostProcessPath "s + arg1.pathName());
223  }
224 
225  MFSU_1_ARG_UPDATER_DEFN(PrePathBeginRun)
226  {
227  mf::SetModuleName("PathBeginRun "s + arg1);
228  }
229 
230  MFSU_2_ARG_UPDATER_DEFN(PostPathBeginRun)
231  {
232  mf::SetModuleName("PostPathBeginRun "s + arg1);
233  }
234 
235  MFSU_1_ARG_UPDATER_DEFN(PrePathEndRun)
236  {
237  mf::SetModuleName("PathEndRun "s + arg1);
238  }
239 
240  MFSU_2_ARG_UPDATER_DEFN(PostPathEndRun)
241  {
242  mf::SetModuleName("PostPathEndRun "s + arg1);
243  }
244 
245  MFSU_1_ARG_UPDATER_DEFN(PrePathBeginSubRun)
246  {
247  mf::SetModuleName("PathBeginSubRun "s + arg1);
248  }
249 
250  MFSU_2_ARG_UPDATER_DEFN(PostPathBeginSubRun)
251  {
252  mf::SetModuleName("PostPathBeginSubRun "s + arg1);
253  }
254 
255  MFSU_1_ARG_UPDATER_DEFN(PrePathEndSubRun)
256  {
257  mf::SetModuleName("PathEndSubRun "s + arg1);
258  }
259 
260  MFSU_2_ARG_UPDATER_DEFN(PostPathEndSubRun)
261  {
262  mf::SetModuleName("PostPathEndSubRun "s + arg1);
263  }
264 
265  MFSU_1_ARG_UPDATER_DEFN(PreModuleConstruction)
266  {
267  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
268  "@Construction"s);
269  mf::SetIteration("ModuleConstruction"s);
270  }
271 
272  MFSU_1_ARG_UPDATER_DEFN(PostModuleConstruction)
273  {
274  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
275  "@Construction"s);
276  }
277 
278  MFSU_2_ARG_UPDATER_DEFN(PostBeginJobWorkers)
279  {
280  throw cet::exception("InternalError"s) << "NOP: do not call";
281  }
282 
283  MFSU_1_ARG_UPDATER_DEFN(PreModuleBeginJob)
284  {
285  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
286  "@BeginJob"s);
287  mf::SetIteration("ModuleBeginJob"s);
288  }
289 
290  MFSU_1_ARG_UPDATER_DEFN(PostModuleBeginJob)
291  {
292  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
293  "@BeginJob"s);
294  }
295 
296  MFSU_1_ARG_UPDATER_DEFN(PreModuleEndJob)
297  {
298  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
299  "@EndJob"s);
300  mf::SetIteration("ModuleEndJob"s);
301  }
302 
303  MFSU_1_ARG_UPDATER_DEFN(PostModuleEndJob)
304  {
305  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
306  "@EndJob"s);
307  }
308 
310  {
311  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
312  "@BeginModule"s);
313  }
314 
316  {
317  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
318  "@EndModule"s);
319  }
320 
321  MFSU_1_ARG_UPDATER_DEFN(PreModuleBeginRun)
322  {
323  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
324  "@BeginRun"s);
325  }
326 
327  MFSU_1_ARG_UPDATER_DEFN(PostModuleBeginRun)
328  {
329  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
330  "@BeginRun"s);
331  }
332 
333  MFSU_1_ARG_UPDATER_DEFN(PreModuleEndRun)
334  {
335  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
336  "@EndRun"s);
337  }
338 
339  MFSU_1_ARG_UPDATER_DEFN(PostModuleEndRun)
340  {
341  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
342  "@EndRun"s);
343  }
344 
345  MFSU_1_ARG_UPDATER_DEFN(PreModuleBeginSubRun)
346  {
347  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
348  "@BeginSubRun"s);
349  }
350 
351  MFSU_1_ARG_UPDATER_DEFN(PostModuleBeginSubRun)
352  {
353  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
354  "@BeginSubRun"s);
355  }
356 
357  MFSU_1_ARG_UPDATER_DEFN(PreModuleEndSubRun)
358  {
359  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
360  "@EndSubRun"s);
361  }
362 
363  MFSU_1_ARG_UPDATER_DEFN(PostModuleEndSubRun)
364  {
365  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
366  "@EndSubRun"s);
367  }
368 
369 } // namespace art
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)
Definition: MVAAlg.h:12
#define MFSU_0_ARG_UPDATER_DEFN(cb)
void SetModuleName(string const &val)
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33