CMS 3D CMS Logo

outputmoduleAbilityToImplementor.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_one_outputmoduleAbilityToImplementor_h
2 #define FWCore_Framework_one_outputmoduleAbilityToImplementor_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : outputmodule::AbilityToImplementor
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Thu, 09 May 2013 19:39:58 GMT
19 //
20 
21 // system include files
22 
23 // user include files
28 
29 // forward declarations
30 
31 namespace edm {
32  class FileBlock;
33  class ModuleCallingContext;
34 
35  namespace one {
36  namespace outputmodule {
37  class RunWatcher : public virtual OutputModuleBase {
38  public:
40  RunWatcher(RunWatcher const&) = delete;
41  RunWatcher& operator=(RunWatcher const&) = delete;
42  ~RunWatcher() noexcept(false) override {};
43 
44  private:
45  void doBeginRun_(RunForOutput const& r) final;
46  void doEndRun_(RunForOutput const& r) final;
47 
48  virtual void beginRun(edm::RunForOutput const&) = 0;
49  virtual void endRun(edm::RunForOutput const&) = 0;
50  };
51 
52  class LuminosityBlockWatcher : public virtual OutputModuleBase {
53  public:
58 
59  private:
61  void doEndLuminosityBlock_(LuminosityBlockForOutput const& lb) final;
62 
63  virtual void beginLuminosityBlock(edm::LuminosityBlockForOutput const&) = 0;
64  virtual void endLuminosityBlock(edm::LuminosityBlockForOutput const&) = 0;
65  };
66 
67  class InputFileWatcher : public virtual OutputModuleBase {
68  public:
70  InputFileWatcher(InputFileWatcher const&) = delete;
73 
74  private:
75  void doRespondToOpenInputFile_(FileBlock const&) final;
76  void doRespondToCloseInputFile_(FileBlock const&) final;
77 
78  virtual void respondToOpenInputFile(FileBlock const&) = 0;
79  virtual void respondToCloseInputFile(FileBlock const&) = 0;
80  };
81 
82  template<typename T> struct AbilityToImplementor;
83 
84  template<>
87  };
88 
89  template<>
92  };
93 
94  template<>
97  };
98 
99  template<>
102  };
103 }
104  }
105 }
106 
107 
108 #endif
virtual void endRun(edm::RunForOutput const &)=0
void doEndRun_(RunForOutput const &r) final
virtual void beginRun(edm::RunForOutput const &)=0
void doBeginRun_(RunForOutput const &r) final
#define noexcept
edm::one::impl::SharedResourcesUser< edm::one::OutputModuleBase > Type
virtual void doBeginLuminosityBlock_(LuminosityBlockForOutput const &)
virtual void doRespondToCloseInputFile_(FileBlock const &)
virtual void doRespondToOpenInputFile_(FileBlock const &)
virtual void doEndLuminosityBlock_(LuminosityBlockForOutput const &)
HLT enums.
RunWatcher & operator=(RunWatcher const &)=delete