CMS 3D CMS Logo

OutputModuleBase.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_one_OutputModuleBase_h
2 #define FWCore_Framework_one_OutputModuleBase_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : OutputModuleBase
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Wed, 31 Jul 2013 15:37:16 GMT
19 //
20 
21 // system include files
22 
23 // user include files
26 
27 // forward declarations
28 namespace edm {
29 
30  class SubProcessParentageHelper;
31 
32  namespace one {
33 
35  public:
36  template <typename U>
38  template <typename T>
39  friend class ::edm::WorkerT;
40  template <typename T>
41  friend class ::edm::OutputModuleCommunicatorT;
43 
44  explicit OutputModuleBase(ParameterSet const& pset);
45 
46  OutputModuleBase(OutputModuleBase const&) = delete; // Disallow copying and moving
47  OutputModuleBase& operator=(OutputModuleBase const&) = delete; // Disallow copying and moving
48 
49  //Output modules always need writeRun and writeLumi to be called
50  virtual bool wantsProcessBlocks() const = 0;
51  virtual bool wantsInputProcessBlocks() const = 0;
52  virtual bool wantsGlobalRuns() const = 0;
53  virtual bool wantsGlobalLuminosityBlocks() const = 0;
54  bool wantsStreamRuns() const { return false; }
55  bool wantsStreamLuminosityBlocks() const { return false; };
56 
57  virtual SerialTaskQueue* globalRunsQueue() { return nullptr; }
58  virtual SerialTaskQueue* globalLuminosityBlocksQueue() { return nullptr; }
60 
62 
63  protected:
65 
66  void doBeginJob();
68 
70 
71  private:
73 
77 
79 
80  std::string workerType() const { return "WorkerT<edm::one::OutputModuleBase>"; }
81 
83 
85  ModuleCallingContext const& iModuleCallingContext,
86  Principal const& iPrincipal) const {}
87 
88  bool hasAcquire() const { return false; }
89  };
90  } // namespace one
91 } // namespace edm
92 #endif
SharedResourcesAcquirer & sharedResourcesAcquirer()
SubProcessParentageHelper const * subProcessParentageHelper_
bool doEvent(EventTransitionInfo const &, ActivityRegistry *, ModuleCallingContext const *)
void configure(OutputModuleDescription const &desc)
void registerProductsAndCallbacks(OutputModuleBase const *, ProductRegistry const *)
SerialTaskQueue luminosityBlockQueue_
std::string workerType() const
virtual SerialTaskQueue * globalLuminosityBlocksQueue()
bool wantsStreamLuminosityBlocks() const
virtual bool wantsGlobalLuminosityBlocks() const =0
SharedResourcesAcquirer resourcesAcquirer_
OutputModuleBase(ParameterSet const &pset)
virtual SerialTaskQueue * globalRunsQueue()
SubProcessParentageHelper const * subProcessParentageHelper() const
virtual SharedResourcesAcquirer createAcquirer()
virtual bool wantsInputProcessBlocks() const =0
OutputModuleBase & operator=(OutputModuleBase const &)=delete
HLT enums.
void doPreallocate(PreallocationConfiguration const &)
virtual bool wantsProcessBlocks() const =0
virtual bool wantsGlobalRuns() const =0
virtual void preActionBeforeRunEventAsync(WaitingTaskHolder iTask, ModuleCallingContext const &iModuleCallingContext, Principal const &iPrincipal) const