CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ActivityRegistry.h
Go to the documentation of this file.
1 #ifndef FWCore_ServiceRegistry_ActivityRegistry_h
2 #define FWCore_ServiceRegistry_ActivityRegistry_h
3 // -*- C++ -*-
4 //
5 // Package: ServiceRegistry
6 // Class : ActivityRegistry
7 //
26 //
27 // Original Author: Chris Jones
28 // Created: Mon Sep 5 19:53:09 EDT 2005
29 //
30 
31 // system include files
32 //#include "boost/signal.hpp"
35 #include "boost/bind.hpp"
36 #include "boost/mem_fn.hpp"
37 #include "boost/utility.hpp"
38 
39 // user include files
40 
41 #define AR_WATCH_USING_METHOD_0(method) template<class TClass, class TMethod> void method (TClass* iObject, TMethod iMethod) { method (boost::bind(boost::mem_fn(iMethod), iObject)); }
42 #define AR_WATCH_USING_METHOD_1(method) template<class TClass, class TMethod> void method (TClass* iObject, TMethod iMethod) { method (boost::bind(boost::mem_fn(iMethod), iObject, _1)); }
43 #define AR_WATCH_USING_METHOD_2(method) template<class TClass, class TMethod> void method (TClass* iObject, TMethod iMethod) { method (boost::bind(boost::mem_fn(iMethod), iObject, _1, _2)); }
44 #define AR_WATCH_USING_METHOD_3(method) template<class TClass, class TMethod> void method (TClass* iObject, TMethod iMethod) { method (boost::bind(boost::mem_fn(iMethod), iObject, _1, _2, _3)); }
45 // forward declarations
46 namespace edm {
47  class EventID;
48  class LuminosityBlockID;
49  class RunID;
50  class Timestamp;
51  class ModuleDescription;
52  class Event;
53  class LuminosityBlock;
54  class Run;
55  class EventSetup;
56  class HLTPathStatus;
57  class GlobalContext;
58  class StreamContext;
59  class PathContext;
60  class ModuleCallingContext;
61  namespace service {
62  class SystemBounds;
63  }
64 
65  class ActivityRegistry : private boost::noncopyable {
66  public:
68 
69  // ---------- signals ------------------------------------
75  }
77 
78  typedef signalslot::Signal<void()> PostBeginJob;
80  PostBeginJob postBeginJobSignal_;
82  void watchPostBeginJob(PostBeginJob::slot_type const& iSlot) {
83  postBeginJobSignal_.connect(iSlot);
84  }
86 
87  typedef signalslot::Signal<void()> PostEndJob;
89  PostEndJob postEndJobSignal_;
90  void watchPostEndJob(PostEndJob::slot_type const& iSlot) {
91  postEndJobSignal_.connect_front(iSlot);
92  }
94 
95  typedef signalslot::Signal<void()> JobFailure;
98  JobFailure jobFailureSignal_;
100  void watchJobFailure(JobFailure::slot_type const& iSlot) {
101  jobFailureSignal_.connect_front(iSlot);
102  }
104 
105 
106  typedef signalslot::Signal<void(StreamID)> PreSourceEvent;
107  PreSourceEvent preSourceSignal_;
108  void watchPreSourceEvent(PreSourceEvent::slot_type const& iSlot) {
109  preSourceSignal_.connect(iSlot);
110  }
112 
113 
114  typedef signalslot::Signal<void(StreamID)> PostSourceEvent;
115  PostSourceEvent postSourceSignal_;
116  void watchPostSourceEvent(PostSourceEvent::slot_type const& iSlot) {
117  postSourceSignal_.connect_front(iSlot);
118  }
120 
121 
122  typedef signalslot::Signal<void()> PreSourceLumi;
123  PreSourceLumi preSourceLumiSignal_;
124  void watchPreSourceLumi(PreSourceLumi::slot_type const& iSlot) {
125  preSourceLumiSignal_.connect(iSlot);
126  }
128 
129 
130  typedef signalslot::Signal<void()> PostSourceLumi;
131  PostSourceLumi postSourceLumiSignal_;
132  void watchPostSourceLumi(PostSourceLumi::slot_type const& iSlot) {
133  postSourceLumiSignal_.connect_front(iSlot);
134  }
136 
137 
138  typedef signalslot::Signal<void()> PreSourceRun;
139  PreSourceRun preSourceRunSignal_;
140  void watchPreSourceRun(PreSourceRun::slot_type const& iSlot) {
141  preSourceRunSignal_.connect(iSlot);
142  }
144 
145 
146  typedef signalslot::Signal<void()> PostSourceRun;
147  PostSourceRun postSourceRunSignal_;
148  void watchPostSourceRun(PostSourceRun::slot_type const& iSlot) {
149  postSourceRunSignal_.connect_front(iSlot);
150  }
152 
153 
154  typedef signalslot::Signal<void(std::string const&, bool)> PreOpenFile;
155  PreOpenFile preOpenFileSignal_;
156  void watchPreOpenFile(PreOpenFile::slot_type const& iSlot) {
157  preOpenFileSignal_.connect(iSlot);
158  }
160 
161 
162  // Note this is only done for a primary file, not a secondary one.
163  typedef signalslot::Signal<void(std::string const&, bool)> PostOpenFile;
164  PostOpenFile postOpenFileSignal_;
165  void watchPostOpenFile(PostOpenFile::slot_type const& iSlot) {
166  postOpenFileSignal_.connect_front(iSlot);
167  }
169 
170 
171  // First argument is the LFN of the file which is being closed.
172  // Second argument is false if fallback is used; true otherwise.
173  typedef signalslot::Signal<void(std::string const&, bool)> PreCloseFile;
174  PreCloseFile preCloseFileSignal_;
175  void watchPreCloseFile(PreCloseFile::slot_type const& iSlot) {
176  preCloseFileSignal_.connect(iSlot);
177  }
179 
180 
181  typedef signalslot::Signal<void(std::string const&, bool)> PostCloseFile;
182  PostCloseFile postCloseFileSignal_;
183  void watchPostCloseFile(PostCloseFile::slot_type const& iSlot) {
184  postCloseFileSignal_.connect_front(iSlot);
185  }
187 
189  PreModuleBeginStream preModuleBeginStreamSignal_;
190  void watchPreModuleBeginStream(PreModuleBeginStream::slot_type const& iSlot) {
191  preModuleBeginStreamSignal_.connect(iSlot);
192  }
194 
196  PostModuleBeginStream postModuleBeginStreamSignal_;
197  void watchPostModuleBeginStream(PostModuleBeginStream::slot_type const& iSlot) {
198  postModuleBeginStreamSignal_.connect_front(iSlot);
199  }
201 
202  typedef signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> PreModuleEndStream;
203  PreModuleEndStream preModuleEndStreamSignal_;
204  void watchPreModuleEndStream(PreModuleEndStream::slot_type const& iSlot) {
205  preModuleEndStreamSignal_.connect(iSlot);
206  }
208 
210  PostModuleEndStream postModuleEndStreamSignal_;
211  void watchPostModuleEndStream(PostModuleEndStream::slot_type const& iSlot) {
212  postModuleEndStreamSignal_.connect_front(iSlot);
213  }
215 
216  typedef signalslot::Signal<void(GlobalContext const&)> PreGlobalBeginRun;
218  PreGlobalBeginRun preGlobalBeginRunSignal_;
219  void watchPreGlobalBeginRun(PreGlobalBeginRun::slot_type const& iSlot) {
220  preGlobalBeginRunSignal_.connect(iSlot);
221  }
223 
224  typedef signalslot::Signal<void(GlobalContext const&)> PostGlobalBeginRun;
225  PostGlobalBeginRun postGlobalBeginRunSignal_;
226  void watchPostGlobalBeginRun(PostGlobalBeginRun::slot_type const& iSlot) {
227  postGlobalBeginRunSignal_.connect_front(iSlot);
228  }
230 
231  typedef signalslot::Signal<void(GlobalContext const&)> PreGlobalEndRun;
232  PreGlobalEndRun preGlobalEndRunSignal_;
233  void watchPreGlobalEndRun(PreGlobalEndRun::slot_type const& iSlot) {
234  preGlobalEndRunSignal_.connect(iSlot);
235  }
237 
238  typedef signalslot::Signal<void(GlobalContext const&)> PostGlobalEndRun;
239  PostGlobalEndRun postGlobalEndRunSignal_;
240  void watchPostGlobalEndRun(PostGlobalEndRun::slot_type const& iSlot) {
241  postGlobalEndRunSignal_.connect_front(iSlot);
242  }
244 
245  typedef signalslot::Signal<void(StreamContext const&)> PreStreamBeginRun;
246  PreStreamBeginRun preStreamBeginRunSignal_;
247  void watchPreStreamBeginRun(PreStreamBeginRun::slot_type const& iSlot) {
248  preStreamBeginRunSignal_.connect(iSlot);
249  }
251 
252  typedef signalslot::Signal<void(StreamContext const&)> PostStreamBeginRun;
253  PostStreamBeginRun postStreamBeginRunSignal_;
254  void watchPostStreamBeginRun(PostStreamBeginRun::slot_type const& iSlot) {
255  postStreamBeginRunSignal_.connect_front(iSlot);
256  }
258 
259  typedef signalslot::Signal<void(StreamContext const&)> PreStreamEndRun;
260  PreStreamEndRun preStreamEndRunSignal_;
261  void watchPreStreamEndRun(PreStreamEndRun::slot_type const& iSlot) {
262  preStreamEndRunSignal_.connect(iSlot);
263  }
265 
266  typedef signalslot::Signal<void(StreamContext const&)> PostStreamEndRun;
267  PostStreamEndRun postStreamEndRunSignal_;
268  void watchPostStreamEndRun(PostStreamEndRun::slot_type const& iSlot) {
269  postStreamEndRunSignal_.connect_front(iSlot);
270  }
272 
273  typedef signalslot::Signal<void(GlobalContext const&)> PreGlobalBeginLumi;
274  PreGlobalBeginLumi preGlobalBeginLumiSignal_;
275  void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const& iSlot) {
276  preGlobalBeginLumiSignal_.connect(iSlot);
277  }
279 
280  typedef signalslot::Signal<void(GlobalContext const&)> PostGlobalBeginLumi;
281  PostGlobalBeginLumi postGlobalBeginLumiSignal_;
282  void watchPostGlobalBeginLumi(PostGlobalBeginLumi::slot_type const& iSlot) {
283  postGlobalBeginLumiSignal_.connect_front(iSlot);
284  }
286 
287  typedef signalslot::Signal<void(GlobalContext const&)> PreGlobalEndLumi;
288  PreGlobalEndLumi preGlobalEndLumiSignal_;
289  void watchPreGlobalEndLumi(PreGlobalEndLumi::slot_type const& iSlot) {
290  preGlobalEndLumiSignal_.connect(iSlot);
291  }
293 
294  typedef signalslot::Signal<void(GlobalContext const&)> PostGlobalEndLumi;
295  PostGlobalEndLumi postGlobalEndLumiSignal_;
296  void watchPostGlobalEndLumi(PostGlobalEndLumi::slot_type const& iSlot) {
297  postGlobalEndLumiSignal_.connect_front(iSlot);
298  }
300 
301  typedef signalslot::Signal<void(StreamContext const&)> PreStreamBeginLumi;
302  PreStreamBeginLumi preStreamBeginLumiSignal_;
303  void watchPreStreamBeginLumi(PreStreamBeginLumi::slot_type const& iSlot) {
304  preStreamBeginLumiSignal_.connect(iSlot);
305  }
307 
308  typedef signalslot::Signal<void(StreamContext const&)> PostStreamBeginLumi;
309  PostStreamBeginLumi postStreamBeginLumiSignal_;
310  void watchPostStreamBeginLumi(PostStreamBeginLumi::slot_type const& iSlot) {
311  postStreamBeginLumiSignal_.connect_front(iSlot);
312  }
314 
315  typedef signalslot::Signal<void(StreamContext const&)> PreStreamEndLumi;
316  PreStreamEndLumi preStreamEndLumiSignal_;
317  void watchPreStreamEndLumi(PreStreamEndLumi::slot_type const& iSlot) {
318  preStreamEndLumiSignal_.connect(iSlot);
319  }
321 
322  typedef signalslot::Signal<void(StreamContext const&)> PostStreamEndLumi;
323  PostStreamEndLumi postStreamEndLumiSignal_;
324  void watchPostStreamEndLumi(PostStreamEndLumi::slot_type const& iSlot) {
325  postStreamEndLumiSignal_.connect_front(iSlot);
326  }
328 
329  typedef signalslot::Signal<void(StreamContext const&)> PreEvent;
331  PreEvent preEventSignal_;
332  void watchPreEvent(PreEvent::slot_type const& iSlot) {
333  preEventSignal_.connect(iSlot);
334  }
336 
337  typedef signalslot::Signal<void(StreamContext const&)> PostEvent;
339  PostEvent postEventSignal_;
340  void watchPostEvent(PostEvent::slot_type const& iSlot) {
341  postEventSignal_.connect_front(iSlot);
342  }
344 
345 
346  typedef signalslot::Signal<void(StreamContext const&, PathContext const&)> PrePathEvent;
347  PrePathEvent prePathEventSignal_;
348  void watchPrePathEvent(PrePathEvent::slot_type const& iSlot) {
349  prePathEventSignal_.connect(iSlot);
350  }
352 
353 
354  typedef signalslot::Signal<void(StreamContext const&, PathContext const&, HLTPathStatus const&)> PostPathEvent;
355  PostPathEvent postPathEventSignal_;
356  void watchPostPathEvent(PostPathEvent::slot_type const& iSlot) {
357  postPathEventSignal_.connect_front(iSlot);
358  }
360 
361  // OLD DELETE THIS
362  typedef signalslot::Signal<void(EventID const&, Timestamp const&)> PreProcessEvent;
364  PreProcessEvent preProcessEventSignal_;
365  void watchPreProcessEvent(PreProcessEvent::slot_type const& iSlot) {
366  preProcessEventSignal_.connect(iSlot);
367  }
369 
370  // OLD DELETE THIS
371  typedef signalslot::Signal<void(Event const&, EventSetup const&)> PostProcessEvent;
373  PostProcessEvent postProcessEventSignal_;
374  void watchPostProcessEvent(PostProcessEvent::slot_type const& iSlot) {
375  postProcessEventSignal_.connect_front(iSlot);
376  }
378 
379  // OLD DELETE THIS
380  typedef signalslot::Signal<void(RunID const&, Timestamp const&)> PreBeginRun;
382  PreBeginRun preBeginRunSignal_;
383  void watchPreBeginRun(PreBeginRun::slot_type const& iSlot) {
384  preBeginRunSignal_.connect(iSlot);
385  }
387 
388  // OLD DELETE THIS
389  typedef signalslot::Signal<void(Run const&, EventSetup const&)> PostBeginRun;
391  PostBeginRun postBeginRunSignal_;
392  void watchPostBeginRun(PostBeginRun::slot_type const& iSlot) {
393  postBeginRunSignal_.connect_front(iSlot);
394  }
396 
397  // OLD DELETE THIS
398  typedef signalslot::Signal<void(RunID const&, Timestamp const&)> PreEndRun;
400  PreEndRun preEndRunSignal_;
401  void watchPreEndRun(PreEndRun::slot_type const& iSlot) {
402  preEndRunSignal_.connect(iSlot);
403  }
405 
406  // OLD DELETE THIS
407  typedef signalslot::Signal<void(Run const&, EventSetup const&)> PostEndRun;
409  PostEndRun postEndRunSignal_;
410  void watchPostEndRun(PostEndRun::slot_type const& iSlot) {
411  postEndRunSignal_.connect_front(iSlot);
412  }
414 
415  // OLD DELETE THIS
416  typedef signalslot::Signal<void(LuminosityBlockID const&, Timestamp const&)> PreBeginLumi;
418  PreBeginLumi preBeginLumiSignal_;
419  void watchPreBeginLumi(PreBeginLumi::slot_type const& iSlot) {
420  preBeginLumiSignal_.connect(iSlot);
421  }
423 
424  // OLD DELETE THIS
425  typedef signalslot::Signal<void(LuminosityBlock const&, EventSetup const&)> PostBeginLumi;
427  PostBeginLumi postBeginLumiSignal_;
428  void watchPostBeginLumi(PostBeginLumi::slot_type const& iSlot) {
429  postBeginLumiSignal_.connect_front(iSlot);
430  }
432 
433  // OLD DELETE THIS
434  typedef signalslot::Signal<void(LuminosityBlockID const&, Timestamp const&)> PreEndLumi;
436  PreEndLumi preEndLumiSignal_;
437  void watchPreEndLumi(PreEndLumi::slot_type const& iSlot) {
438  preEndLumiSignal_.connect(iSlot);
439  }
441 
442  // OLD DELETE THIS
443  typedef signalslot::Signal<void(LuminosityBlock const&, EventSetup const&)> PostEndLumi;
445  PostEndLumi postEndLumiSignal_;
446  void watchPostEndLumi(PostEndLumi::slot_type const& iSlot) {
447  postEndLumiSignal_.connect_front(iSlot);
448  }
450 
451  // OLD DELETE THIS
453  typedef signalslot::Signal<void(std::string const&)> PreProcessPath;
454  PreProcessPath preProcessPathSignal_;
455  void watchPreProcessPath(PreProcessPath::slot_type const& iSlot) {
456  preProcessPathSignal_.connect(iSlot);
457  }
459 
460  // OLD DELETE THIS
462  typedef signalslot::Signal<void(std::string const&, HLTPathStatus const&)> PostProcessPath;
463  PostProcessPath postProcessPathSignal_;
464  void watchPostProcessPath(PostProcessPath::slot_type const& iSlot) {
465  postProcessPathSignal_.connect_front(iSlot);
466  }
468 
469  // OLD DELETE THIS
471  typedef signalslot::Signal<void(std::string const&)> PrePathBeginRun;
472  PrePathBeginRun prePathBeginRunSignal_;
473  void watchPrePathBeginRun(PrePathBeginRun::slot_type const& iSlot) {
474  prePathBeginRunSignal_.connect(iSlot);
475  }
477 
478  // OLD DELETE THIS
480  typedef signalslot::Signal<void(std::string const&, HLTPathStatus const&)> PostPathBeginRun;
481  PostPathBeginRun postPathBeginRunSignal_;
482  void watchPostPathBeginRun(PostPathBeginRun::slot_type const& iSlot) {
483  postPathBeginRunSignal_.connect_front(iSlot);
484  }
486 
487  // OLD DELETE THIS
489  typedef signalslot::Signal<void(std::string const&)> PrePathEndRun;
490  PrePathEndRun prePathEndRunSignal_;
491  void watchPrePathEndRun(PrePathEndRun::slot_type const& iSlot) {
492  prePathEndRunSignal_.connect(iSlot);
493  }
495 
496  // OLD DELETE THIS
498  typedef signalslot::Signal<void(std::string const&, HLTPathStatus const&)> PostPathEndRun;
499  PostPathEndRun postPathEndRunSignal_;
500  void watchPostPathEndRun(PostPathEndRun::slot_type const& iSlot) {
501  postPathEndRunSignal_.connect_front(iSlot);
502  }
504 
505  // OLD DELETE THIS
507  typedef signalslot::Signal<void(std::string const&)> PrePathBeginLumi;
508  PrePathBeginLumi prePathBeginLumiSignal_;
509  void watchPrePathBeginLumi(PrePathBeginLumi::slot_type const& iSlot) {
510  prePathBeginLumiSignal_.connect(iSlot);
511  }
513 
514  // OLD DELETE THIS
516  typedef signalslot::Signal<void(std::string const&, HLTPathStatus const&)> PostPathBeginLumi;
517  PostPathBeginLumi postPathBeginLumiSignal_;
518  void watchPostPathBeginLumi(PostPathBeginLumi::slot_type const& iSlot) {
519  postPathBeginLumiSignal_.connect_front(iSlot);
520  }
522 
523  // OLD DELETE THIS
525  typedef signalslot::Signal<void(std::string const&)> PrePathEndLumi;
526  PrePathEndLumi prePathEndLumiSignal_;
527  void watchPrePathEndLumi(PrePathEndLumi::slot_type const& iSlot) {
528  prePathEndLumiSignal_.connect(iSlot);
529  }
531 
532  // OLD DELETE THIS
534  typedef signalslot::Signal<void(std::string const&, HLTPathStatus const&)> PostPathEndLumi;
535  PostPathEndLumi postPathEndLumiSignal_;
536  void watchPostPathEndLumi(PostPathEndLumi::slot_type const& iSlot) {
537  postPathEndLumiSignal_.connect_front(iSlot);
538  }
540 
541  /* Note M:
542  Concerning use of address of module descriptor
543  during functions called before/after module or source construction:
544  Unlike the case in the Run, Lumi, and Event loops,
545  the Module descriptor (often passed by pointer or reference
546  as an argument named desc) in the construction phase is NOT
547  at some permanent fixed address during the construction phase.
548  Therefore, any optimization of caching the module name keying
549  off of address of the descriptor will NOT be valid during
550  such functions. mf / cj 9/11/09
551  */
552 
553 
555  PreModuleConstruction preModuleConstructionSignal_;
556  void watchPreModuleConstruction(PreModuleConstruction::slot_type const& iSlot) {
557  preModuleConstructionSignal_.connect(iSlot);
558  }
559  // WARNING - ModuleDescription is not in fixed place. See note M above.
561 
562 
564  PostModuleConstruction postModuleConstructionSignal_;
565  void watchPostModuleConstruction(PostModuleConstruction::slot_type const& iSlot) {
566  postModuleConstructionSignal_.connect_front(iSlot);
567  }
568  // WARNING - ModuleDescription is not in fixed place. See note M above.
570 
571 
572  typedef signalslot::Signal<void(ModuleDescription const&)> PreModuleBeginJob;
573  PreModuleBeginJob preModuleBeginJobSignal_;
574  void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const& iSlot) {
575  preModuleBeginJobSignal_.connect(iSlot);
576  }
578 
579 
580  typedef signalslot::Signal<void(ModuleDescription const&)> PostModuleBeginJob;
581  PostModuleBeginJob postModuleBeginJobSignal_;
582  void watchPostModuleBeginJob(PostModuleBeginJob::slot_type const& iSlot) {
583  postModuleBeginJobSignal_.connect_front(iSlot);
584  }
586 
587 
588  typedef signalslot::Signal<void(ModuleDescription const&)> PreModuleEndJob;
589  PreModuleEndJob preModuleEndJobSignal_;
590  void watchPreModuleEndJob(PreModuleEndJob::slot_type const& iSlot) {
591  preModuleEndJobSignal_.connect(iSlot);
592  }
594 
595 
596  typedef signalslot::Signal<void(ModuleDescription const&)> PostModuleEndJob;
597  PostModuleEndJob postModuleEndJobSignal_;
598  void watchPostModuleEndJob(PostModuleEndJob::slot_type const& iSlot) {
599  postModuleEndJobSignal_.connect_front(iSlot);
600  }
602 
603 
604  typedef signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> PreModuleEvent;
605  PreModuleEvent preModuleEventSignal_;
606  void watchPreModuleEvent(PreModuleEvent::slot_type const& iSlot) {
607  preModuleEventSignal_.connect(iSlot);
608  }
610 
611 
612  typedef signalslot::Signal<void(StreamContext const&, ModuleCallingContext const&)> PostModuleEvent;
613  PostModuleEvent postModuleEventSignal_;
614  void watchPostModuleEvent(PostModuleEvent::slot_type const& iSlot) {
615  postModuleEventSignal_.connect_front(iSlot);
616  }
618 
619 
621  PreModuleEventDelayedGet preModuleEventDelayedGetSignal_;
622  void watchPreModuleEventDelayedGet(PreModuleEventDelayedGet::slot_type const& iSlot) {
623  preModuleEventDelayedGetSignal_.connect(iSlot);
624  }
626 
627 
629  PostModuleEventDelayedGet postModuleEventDelayedGetSignal_;
630  void watchPostModuleEventDelayedGet(PostModuleEventDelayedGet::slot_type const& iSlot) {
631  postModuleEventDelayedGetSignal_.connect_front(iSlot);
632  }
634 
636  PreModuleStreamBeginRun preModuleStreamBeginRunSignal_;
637  void watchPreModuleStreamBeginRun(PreModuleStreamBeginRun::slot_type const& iSlot) {
638  preModuleStreamBeginRunSignal_.connect(iSlot);
639  }
641 
643  PostModuleStreamBeginRun postModuleStreamBeginRunSignal_;
644  void watchPostModuleStreamBeginRun(PostModuleStreamBeginRun::slot_type const& iSlot) {
645  postModuleStreamBeginRunSignal_.connect_front(iSlot);
646  }
648 
650  PreModuleStreamEndRun preModuleStreamEndRunSignal_;
651  void watchPreModuleStreamEndRun(PreModuleStreamEndRun::slot_type const& iSlot) {
652  preModuleStreamEndRunSignal_.connect(iSlot);
653  }
655 
657  PostModuleStreamEndRun postModuleStreamEndRunSignal_;
658  void watchPostModuleStreamEndRun(PostModuleStreamEndRun::slot_type const& iSlot) {
659  postModuleStreamEndRunSignal_.connect_front(iSlot);
660  }
662 
664  PreModuleStreamBeginLumi preModuleStreamBeginLumiSignal_;
665  void watchPreModuleStreamBeginLumi(PreModuleStreamBeginLumi::slot_type const& iSlot) {
666  preModuleStreamBeginLumiSignal_.connect(iSlot);
667  }
669 
671  PostModuleStreamBeginLumi postModuleStreamBeginLumiSignal_;
672  void watchPostModuleStreamBeginLumi(PostModuleStreamBeginLumi::slot_type const& iSlot) {
673  postModuleStreamBeginLumiSignal_.connect_front(iSlot);
674  }
676 
678  PreModuleStreamEndLumi preModuleStreamEndLumiSignal_;
679  void watchPreModuleStreamEndLumi(PreModuleStreamEndLumi::slot_type const& iSlot) {
680  preModuleStreamEndLumiSignal_.connect(iSlot);
681  }
683 
685  PostModuleStreamEndLumi postModuleStreamEndLumiSignal_;
686  void watchPostModuleStreamEndLumi(PostModuleStreamEndLumi::slot_type const& iSlot) {
687  postModuleStreamEndLumiSignal_.connect_front(iSlot);
688  }
690 
692  PreModuleGlobalBeginRun preModuleGlobalBeginRunSignal_;
693  void watchPreModuleGlobalBeginRun(PreModuleGlobalBeginRun::slot_type const& iSlot) {
694  preModuleGlobalBeginRunSignal_.connect(iSlot);
695  }
697 
699  PostModuleGlobalBeginRun postModuleGlobalBeginRunSignal_;
700  void watchPostModuleGlobalBeginRun(PostModuleGlobalBeginRun::slot_type const& iSlot) {
701  postModuleGlobalBeginRunSignal_.connect_front(iSlot);
702  }
704 
706  PreModuleGlobalEndRun preModuleGlobalEndRunSignal_;
707  void watchPreModuleGlobalEndRun(PreModuleGlobalEndRun::slot_type const& iSlot) {
708  preModuleGlobalEndRunSignal_.connect(iSlot);
709  }
711 
713  PostModuleGlobalEndRun postModuleGlobalEndRunSignal_;
714  void watchPostModuleGlobalEndRun(PostModuleGlobalEndRun::slot_type const& iSlot) {
715  postModuleGlobalEndRunSignal_.connect_front(iSlot);
716  }
718 
720  PreModuleGlobalBeginLumi preModuleGlobalBeginLumiSignal_;
721  void watchPreModuleGlobalBeginLumi(PreModuleGlobalBeginLumi::slot_type const& iSlot) {
722  preModuleGlobalBeginLumiSignal_.connect(iSlot);
723  }
725 
727  PostModuleGlobalBeginLumi postModuleGlobalBeginLumiSignal_;
728  void watchPostModuleGlobalBeginLumi(PostModuleGlobalBeginLumi::slot_type const& iSlot) {
729  postModuleGlobalBeginLumiSignal_.connect_front(iSlot);
730  }
732 
734  PreModuleGlobalEndLumi preModuleGlobalEndLumiSignal_;
735  void watchPreModuleGlobalEndLumi(PreModuleGlobalEndLumi::slot_type const& iSlot) {
736  preModuleGlobalEndLumiSignal_.connect(iSlot);
737  }
739 
741  PostModuleGlobalEndLumi postModuleGlobalEndLumiSignal_;
742  void watchPostModuleGlobalEndLumi(PostModuleGlobalEndLumi::slot_type const& iSlot) {
743  postModuleGlobalEndLumiSignal_.connect_front(iSlot);
744  }
746 
747  // OLD DELETE THIS
749  typedef signalslot::Signal<void(ModuleDescription const&)> PreModule;
750  PreModule preModuleSignal_;
751  void watchPreModule(PreModule::slot_type const& iSlot) {
752  preModuleSignal_.connect(iSlot);
753  }
755 
756  // OLD DELETE THIS
758  typedef signalslot::Signal<void(ModuleDescription const&)> PostModule;
759  PostModule postModuleSignal_;
760  void watchPostModule(PostModule::slot_type const& iSlot) {
761  postModuleSignal_.connect_front(iSlot);
762  }
764 
765  // OLD DELETE THIS
767  typedef signalslot::Signal<void(ModuleDescription const&)> PreModuleBeginRun;
768  PreModuleBeginRun preModuleBeginRunSignal_;
769  void watchPreModuleBeginRun(PreModuleBeginRun::slot_type const& iSlot) {
770  preModuleBeginRunSignal_.connect(iSlot);
771  }
773 
774  // OLD DELETE THIS
776  typedef signalslot::Signal<void(ModuleDescription const&)> PostModuleBeginRun;
777  PostModuleBeginRun postModuleBeginRunSignal_;
778  void watchPostModuleBeginRun(PostModuleBeginRun::slot_type const& iSlot) {
779  postModuleBeginRunSignal_.connect_front(iSlot);
780 
781  }
783 
784  // OLD DELETE THIS
786  typedef signalslot::Signal<void(ModuleDescription const&)> PreModuleEndRun;
787  PreModuleEndRun preModuleEndRunSignal_;
788  void watchPreModuleEndRun(PreModuleEndRun::slot_type const& iSlot) {
789  preModuleEndRunSignal_.connect(iSlot);
790  }
792 
793  // OLD DELETE THIS
795  typedef signalslot::Signal<void(ModuleDescription const&)> PostModuleEndRun;
796  PostModuleEndRun postModuleEndRunSignal_;
797  void watchPostModuleEndRun(PostModuleEndRun::slot_type const& iSlot) {
798  postModuleEndRunSignal_.connect_front(iSlot);
799  }
801 
802  // OLD DELETE THIS
804  typedef signalslot::Signal<void(ModuleDescription const&)> PreModuleBeginLumi;
805  PreModuleBeginLumi preModuleBeginLumiSignal_;
806  void watchPreModuleBeginLumi(PreModuleBeginLumi::slot_type const& iSlot) {
807  preModuleBeginLumiSignal_.connect(iSlot);
808  }
810 
811  // OLD DELETE THIS
813  typedef signalslot::Signal<void(ModuleDescription const&)> PostModuleBeginLumi;
814  PostModuleBeginLumi postModuleBeginLumiSignal_;
815  void watchPostModuleBeginLumi(PostModuleBeginLumi::slot_type const& iSlot) {
816  postModuleBeginLumiSignal_.connect_front(iSlot);
817  }
819 
820  // OLD DELETE THIS
822  typedef signalslot::Signal<void(ModuleDescription const&)> PreModuleEndLumi;
823  PreModuleEndLumi preModuleEndLumiSignal_;
824  void watchPreModuleEndLumi(PreModuleEndLumi::slot_type const& iSlot) {
825  preModuleEndLumiSignal_.connect(iSlot);
826  }
828 
829  // OLD DELETE THIS
831  typedef signalslot::Signal<void(ModuleDescription const&)> PostModuleEndLumi;
832  PostModuleEndLumi postModuleEndLumiSignal_;
833  void watchPostModuleEndLumi(PostModuleEndLumi::slot_type const& iSlot) {
834  postModuleEndLumiSignal_.connect_front(iSlot);
835  }
837 
838 
840  PreSourceConstruction preSourceConstructionSignal_;
841  void watchPreSourceConstruction(PreSourceConstruction::slot_type const& iSlot) {
842  preSourceConstructionSignal_.connect(iSlot);
843  }
844  // WARNING - ModuleDescription is not in fixed place. See note M above.
846 
847 
849  PostSourceConstruction postSourceConstructionSignal_;
850  void watchPostSourceConstruction(PostSourceConstruction::slot_type const& iSlot) {
851  postSourceConstructionSignal_.connect_front(iSlot);
852  }
853  // WARNING - ModuleDescription is not in fixed place. See note M above.
855 
856 
857  typedef signalslot::Signal<void()> PreForkReleaseResources;
858  PreForkReleaseResources preForkReleaseResourcesSignal_;
859  void watchPreForkReleaseResources(PreForkReleaseResources::slot_type const& iSlot) {
860  preForkReleaseResourcesSignal_.connect_front(iSlot);
861  }
863 
864 
865  typedef signalslot::Signal<void(unsigned int, unsigned int)> PostForkReacquireResources;
866  PostForkReacquireResources postForkReacquireResourcesSignal_;
867  void watchPostForkReacquireResources(PostForkReacquireResources::slot_type const& iSlot) {
868  postForkReacquireResourcesSignal_.connect_front(iSlot);
869  }
871 
872  // ---------- member functions ---------------------------
873 
874 
875  void connect(ActivityRegistry& iOther);
876 
880 
886  void copySlotsFrom(ActivityRegistry& iOther);
887 
888  private:
889  // forwards subprocess independent signals to slots connected to iOther
890  void connectGlobals(ActivityRegistry& iOther);
891 
892  // forwards subprocess dependent signals to slots connected to iOther
893  void connectLocals(ActivityRegistry& iOther);
894  };
895 }
896 #undef AR_WATCH_USING_METHOD
897 #endif
void watchPostBeginRun(PostBeginRun::slot_type const &iSlot)
void watchPrePathEndLumi(PrePathEndLumi::slot_type const &iSlot)
PreModuleStreamBeginRun preModuleStreamBeginRunSignal_
void watchPostModuleGlobalEndLumi(PostModuleGlobalEndLumi::slot_type const &iSlot)
void watchPostModuleConstruction(PostModuleConstruction::slot_type const &iSlot)
PostSourceLumi postSourceLumiSignal_
void connectLocals(ActivityRegistry &iOther)
void watchPreModuleGlobalBeginRun(PreModuleGlobalBeginRun::slot_type const &iSlot)
PreStreamBeginRun preStreamBeginRunSignal_
PreModuleBeginLumi preModuleBeginLumiSignal_
void watchPreEvent(PreEvent::slot_type const &iSlot)
PreBeginLumi preBeginLumiSignal_
signal is emitted after the Lumi has been created by the InputSource but before any modules have seen...
PostModuleEventDelayedGet postModuleEventDelayedGetSignal_
PostModuleStreamEndRun postModuleStreamEndRunSignal_
PreModuleEventDelayedGet preModuleEventDelayedGetSignal_
PreEndRun preEndRunSignal_
signal is emitted before the endRun is processed
void watchPrePathEvent(PrePathEvent::slot_type const &iSlot)
void watchPreallocate(Preallocate::slot_type const &iSlot)
PrePathEvent prePathEventSignal_
PostModuleGlobalBeginRun postModuleGlobalBeginRunSignal_
PostModuleBeginStream postModuleBeginStreamSignal_
PreGlobalBeginRun preGlobalBeginRunSignal_
signal is emitted after the Run has been created by the InputSource but before any modules have seen ...
void watchPostModuleBeginLumi(PostModuleBeginLumi::slot_type const &iSlot)
void watchPostEndJob(PostEndJob::slot_type const &iSlot)
PreSourceRun preSourceRunSignal_
PostModuleEvent postModuleEventSignal_
void watchPrePathEndRun(PrePathEndRun::slot_type const &iSlot)
void watchPostModuleEndStream(PostModuleEndStream::slot_type const &iSlot)
PostOpenFile postOpenFileSignal_
signalslot::Signal< void(service::SystemBounds const &)> Preallocate
void watchPreModuleEvent(PreModuleEvent::slot_type const &iSlot)
PreGlobalEndRun preGlobalEndRunSignal_
void watchPreModuleConstruction(PreModuleConstruction::slot_type const &iSlot)
void watchPreGlobalEndLumi(PreGlobalEndLumi::slot_type const &iSlot)
PostEvent postEventSignal_
signal is emitted after all modules have finished processing the Event
PreModuleEndRun preModuleEndRunSignal_
void watchPreForkReleaseResources(PreForkReleaseResources::slot_type const &iSlot)
PostStreamEndLumi postStreamEndLumiSignal_
PostModuleEndRun postModuleEndRunSignal_
void watchPostEvent(PostEvent::slot_type const &iSlot)
void watchPostModule(PostModule::slot_type const &iSlot)
void connect_front(U iFunc)
Definition: Signal.h:68
PostModuleEndLumi postModuleEndLumiSignal_
PostGlobalBeginRun postGlobalBeginRunSignal_
void watchPreProcessEvent(PreProcessEvent::slot_type const &iSlot)
void connectGlobals(ActivityRegistry &iOther)
void watchPreStreamEndRun(PreStreamEndRun::slot_type const &iSlot)
void watchPreSourceConstruction(PreSourceConstruction::slot_type const &iSlot)
void watchPreEndLumi(PreEndLumi::slot_type const &iSlot)
void watchPostSourceConstruction(PostSourceConstruction::slot_type const &iSlot)
void watchPostStreamEndLumi(PostStreamEndLumi::slot_type const &iSlot)
void watchPreGlobalBeginLumi(PreGlobalBeginLumi::slot_type const &iSlot)
void watchPostPathEndRun(PostPathEndRun::slot_type const &iSlot)
void watchPostPathEvent(PostPathEvent::slot_type const &iSlot)
void watchPostModuleEvent(PostModuleEvent::slot_type const &iSlot)
void watchPostModuleGlobalBeginLumi(PostModuleGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamEndLumi(PostModuleStreamEndLumi::slot_type const &iSlot)
PreModuleBeginStream preModuleBeginStreamSignal_
void watchPostGlobalBeginLumi(PostGlobalBeginLumi::slot_type const &iSlot)
void copySlotsFrom(ActivityRegistry &iOther)
void watchPostModuleStreamBeginRun(PostModuleStreamBeginRun::slot_type const &iSlot)
void watchPostSourceEvent(PostSourceEvent::slot_type const &iSlot)
PreEndLumi preEndLumiSignal_
signal is emitted before the endLumi is processed
void watchPostEndLumi(PostEndLumi::slot_type const &iSlot)
PostModuleStreamBeginLumi postModuleStreamBeginLumiSignal_
PostSourceRun postSourceRunSignal_
void watchPreModuleBeginStream(PreModuleBeginStream::slot_type const &iSlot)
PostSourceConstruction postSourceConstructionSignal_
PostBeginRun postBeginRunSignal_
signal is emitted after all modules have finished processing the beginRun
void watchPreModuleEndLumi(PreModuleEndLumi::slot_type const &iSlot)
PreSourceConstruction preSourceConstructionSignal_
void watchPreStreamEndLumi(PreStreamEndLumi::slot_type const &iSlot)
PostPathEndRun postPathEndRunSignal_
void watchPostPathEndLumi(PostPathEndLumi::slot_type const &iSlot)
void watchPreModuleGlobalEndRun(PreModuleGlobalEndRun::slot_type const &iSlot)
PostPathBeginRun postPathBeginRunSignal_
PreForkReleaseResources preForkReleaseResourcesSignal_
void watchPreEndRun(PreEndRun::slot_type const &iSlot)
void watchPreModule(PreModule::slot_type const &iSlot)
PreModuleStreamEndLumi preModuleStreamEndLumiSignal_
void watchJobFailure(JobFailure::slot_type const &iSlot)
convenience function for attaching to signal
PostGlobalEndLumi postGlobalEndLumiSignal_
Preallocate preallocateSignal_
signal is emitted before beginJob
PreGlobalBeginLumi preGlobalBeginLumiSignal_
PreModuleBeginRun preModuleBeginRunSignal_
void watchPreOpenFile(PreOpenFile::slot_type const &iSlot)
void watchPostGlobalBeginRun(PostGlobalBeginRun::slot_type const &iSlot)
void watchPostProcessEvent(PostProcessEvent::slot_type const &iSlot)
void watchPostCloseFile(PostCloseFile::slot_type const &iSlot)
void watchPreGlobalEndRun(PreGlobalEndRun::slot_type const &iSlot)
void watchPreModuleEndRun(PreModuleEndRun::slot_type const &iSlot)
PostForkReacquireResources postForkReacquireResourcesSignal_
PrePathBeginLumi prePathBeginLumiSignal_
void watchPrePathBeginRun(PrePathBeginRun::slot_type const &iSlot)
PrePathEndRun prePathEndRunSignal_
PostModuleGlobalEndRun postModuleGlobalEndRunSignal_
void watchPostSourceRun(PostSourceRun::slot_type const &iSlot)
void watchPostStreamBeginLumi(PostStreamBeginLumi::slot_type const &iSlot)
PostModuleGlobalEndLumi postModuleGlobalEndLumiSignal_
PreModuleStreamEndRun preModuleStreamEndRunSignal_
PostPathEndLumi postPathEndLumiSignal_
void watchPreSourceLumi(PreSourceLumi::slot_type const &iSlot)
PostProcessEvent postProcessEventSignal_
signal is emitted after all modules have finished processing the Event
void watchPreModuleEventDelayedGet(PreModuleEventDelayedGet::slot_type const &iSlot)
PostStreamEndRun postStreamEndRunSignal_
void watchPostModuleEndRun(PostModuleEndRun::slot_type const &iSlot)
PreStreamEndRun preStreamEndRunSignal_
PreModuleConstruction preModuleConstructionSignal_
PostModuleEndStream postModuleEndStreamSignal_
PostEndRun postEndRunSignal_
signal is emitted after all modules have finished processing the Run
void watchPreModuleEndJob(PreModuleEndJob::slot_type const &iSlot)
PreGlobalEndLumi preGlobalEndLumiSignal_
std::function< void(service::SystemBounds const &) > slot_type
Definition: Signal.h:39
void watchPostGlobalEndLumi(PostGlobalEndLumi::slot_type const &iSlot)
void watchPreSourceRun(PreSourceRun::slot_type const &iSlot)
PostSourceEvent postSourceSignal_
void watchPostBeginLumi(PostBeginLumi::slot_type const &iSlot)
void watchPreModuleBeginJob(PreModuleBeginJob::slot_type const &iSlot)
void watchPrePathBeginLumi(PrePathBeginLumi::slot_type const &iSlot)
void watchPostStreamEndRun(PostStreamEndRun::slot_type const &iSlot)
#define AR_WATCH_USING_METHOD_1(method)
PreCloseFile preCloseFileSignal_
PostModuleBeginLumi postModuleBeginLumiSignal_
PostEndLumi postEndLumiSignal_
signal is emitted after all modules have finished processing the Lumi
void watchPostModuleBeginRun(PostModuleBeginRun::slot_type const &iSlot)
void watchPreModuleGlobalBeginLumi(PreModuleGlobalBeginLumi::slot_type const &iSlot)
void watchPostModuleStreamEndRun(PostModuleStreamEndRun::slot_type const &iSlot)
PreStreamBeginLumi preStreamBeginLumiSignal_
void watchPostPathBeginRun(PostPathBeginRun::slot_type const &iSlot)
PreModuleStreamBeginLumi preModuleStreamBeginLumiSignal_
PostStreamBeginRun postStreamBeginRunSignal_
void watchPreGlobalBeginRun(PreGlobalBeginRun::slot_type const &iSlot)
void watchPreModuleStreamBeginLumi(PreModuleStreamBeginLumi::slot_type const &iSlot)
PreModuleGlobalBeginRun preModuleGlobalBeginRunSignal_
void watchPostModuleBeginStream(PostModuleBeginStream::slot_type const &iSlot)
PostCloseFile postCloseFileSignal_
void watchPostSourceLumi(PostSourceLumi::slot_type const &iSlot)
void watchPreCloseFile(PreCloseFile::slot_type const &iSlot)
void watchPostModuleEventDelayedGet(PostModuleEventDelayedGet::slot_type const &iSlot)
void watchPostModuleGlobalEndRun(PostModuleGlobalEndRun::slot_type const &iSlot)
#define AR_WATCH_USING_METHOD_0(method)
void watchPostModuleStreamBeginLumi(PostModuleStreamBeginLumi::slot_type const &iSlot)
PostModuleEndJob postModuleEndJobSignal_
PostModuleBeginJob postModuleBeginJobSignal_
PreModuleGlobalBeginLumi preModuleGlobalBeginLumiSignal_
void connectToSubProcess(ActivityRegistry &iOther)
void watchPreModuleStreamEndLumi(PreModuleStreamEndLumi::slot_type const &iSlot)
void watchPreModuleStreamBeginRun(PreModuleStreamBeginRun::slot_type const &iSlot)
PreSourceLumi preSourceLumiSignal_
void watchPostGlobalEndRun(PostGlobalEndRun::slot_type const &iSlot)
void watchPreStreamBeginLumi(PreStreamBeginLumi::slot_type const &iSlot)
PostModuleBeginRun postModuleBeginRunSignal_
PrePathEndLumi prePathEndLumiSignal_
string const
Definition: compareJSON.py:14
void watchPostOpenFile(PostOpenFile::slot_type const &iSlot)
PreModuleGlobalEndLumi preModuleGlobalEndLumiSignal_
PreProcessPath preProcessPathSignal_
void watchPreModuleEndStream(PreModuleEndStream::slot_type const &iSlot)
PostGlobalEndRun postGlobalEndRunSignal_
PreProcessEvent preProcessEventSignal_
signal is emitted after the Event has been created by the InputSource but before any modules have see...
PreModuleEvent preModuleEventSignal_
#define private
Definition: FWFileEntry.h:17
void watchPostStreamBeginRun(PostStreamBeginRun::slot_type const &iSlot)
void watchPostForkReacquireResources(PostForkReacquireResources::slot_type const &iSlot)
PostGlobalBeginLumi postGlobalBeginLumiSignal_
PreOpenFile preOpenFileSignal_
PreModuleEndLumi preModuleEndLumiSignal_
void watchPreStreamBeginRun(PreStreamBeginRun::slot_type const &iSlot)
PostEndJob postEndJobSignal_
signal is emitted after all modules have gotten their endJob called
void watchPreModuleStreamEndRun(PreModuleStreamEndRun::slot_type const &iSlot)
PreModuleBeginJob preModuleBeginJobSignal_
void watchPostModuleBeginJob(PostModuleBeginJob::slot_type const &iSlot)
PreSourceEvent preSourceSignal_
void watchPostModuleGlobalBeginRun(PostModuleGlobalBeginRun::slot_type const &iSlot)
PreModuleEndStream preModuleEndStreamSignal_
void watchPreBeginLumi(PreBeginLumi::slot_type const &iSlot)
PostPathEvent postPathEventSignal_
PostStreamBeginLumi postStreamBeginLumiSignal_
PreStreamEndLumi preStreamEndLumiSignal_
PostModuleStreamEndLumi postModuleStreamEndLumiSignal_
void watchPreSourceEvent(PreSourceEvent::slot_type const &iSlot)
void watchPostEndRun(PostEndRun::slot_type const &iSlot)
PreModuleGlobalEndRun preModuleGlobalEndRunSignal_
void watchPreModuleBeginLumi(PreModuleBeginLumi::slot_type const &iSlot)
PreEvent preEventSignal_
signal is emitted after the Event has been created by the InputSource but before any modules have see...
PostModuleStreamBeginRun postModuleStreamBeginRunSignal_
PostBeginJob postBeginJobSignal_
signal is emitted after all modules have gotten their beginJob called
PreModuleEndJob preModuleEndJobSignal_
#define AR_WATCH_USING_METHOD_3(method)
#define AR_WATCH_USING_METHOD_2(method)
void watchPreProcessPath(PreProcessPath::slot_type const &iSlot)
PrePathBeginRun prePathBeginRunSignal_
void watchPostModuleEndJob(PostModuleEndJob::slot_type const &iSlot)
void connect(U iFunc)
Definition: Signal.h:63
void watchPreModuleBeginRun(PreModuleBeginRun::slot_type const &iSlot)
PostPathBeginLumi postPathBeginLumiSignal_
void watchPostModuleEndLumi(PostModuleEndLumi::slot_type const &iSlot)
void watchPostPathBeginLumi(PostPathBeginLumi::slot_type const &iSlot)
void watchPreModuleGlobalEndLumi(PreModuleGlobalEndLumi::slot_type const &iSlot)
void watchPostProcessPath(PostProcessPath::slot_type const &iSlot)
Definition: Run.h:41
PostModuleGlobalBeginLumi postModuleGlobalBeginLumiSignal_
PostProcessPath postProcessPathSignal_
PreBeginRun preBeginRunSignal_
signal is emitted after the Run has been created by the InputSource but before any modules have seen ...
void watchPreBeginRun(PreBeginRun::slot_type const &iSlot)
PostBeginLumi postBeginLumiSignal_
signal is emitted after all modules have finished processing the beginLumi
void watchPostBeginJob(PostBeginJob::slot_type const &iSlot)
convenience function for attaching to signal
Definition: vlib.h:39
void connect(ActivityRegistry &iOther)
forwards our signals to slots connected to iOther
PostModuleConstruction postModuleConstructionSignal_