CMS 3D CMS Logo

OutputModuleCommunicator.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_OutputModuleCommunicator_h
2 #define FWCore_Framework_OutputModuleCommunicator_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : OutputModuleCommunicator
7 //
16 //
17 // Original Author: Chris Jones
18 // Created: Fri, 05 Jul 2013 17:36:51 GMT
19 //
20 
21 // system include files
22 #include <map>
23 #include <string>
24 #include <vector>
25 
26 // user include files
30 
31 // forward declarations
32 namespace edm {
33 
34  class ActivityRegistry;
35  class MergeableRunProductMetadata;
36  class ProcessContext;
37  class ThinnedAssociationsHelper;
38  class WaitingTaskHolder;
39 
41  public:
42  OutputModuleCommunicator() = default;
45  virtual ~OutputModuleCommunicator();
46 
47  virtual void closeFile() = 0;
48 
50  virtual bool shouldWeCloseFile() const = 0;
51 
53  virtual bool wantAllEvents() const = 0;
54 
55  virtual void openFile(FileBlock const& fb) = 0;
56 
57  virtual void writeProcessBlockAsync(WaitingTaskHolder iTask,
58  ProcessBlockPrincipal const&,
59  ProcessContext const*,
60  ActivityRegistry*) = 0;
61 
62  virtual void writeRunAsync(WaitingTaskHolder iTask,
63  RunPrincipal const&,
64  ProcessContext const*,
66  MergeableRunProductMetadata const*) = 0;
67 
68  virtual void writeLumiAsync(WaitingTaskHolder iTask,
70  ProcessContext const*,
71  ActivityRegistry*) = 0;
72 
74  virtual bool limitReached() const = 0;
75 
76  virtual void configure(OutputModuleDescription const& desc) = 0;
77 
78  virtual SelectedProductsForBranchType const& keptProducts() const = 0;
79 
80  virtual void selectProducts(ProductRegistry const& preg,
82  ProcessBlockHelperBase const&) = 0;
83 
84  virtual void setEventSelectionInfo(
85  std::map<std::string, std::vector<std::pair<std::string, int> > > const& outputModulePathPositions,
86  bool anyProductProduced) = 0;
87 
88  virtual ModuleDescription const& description() const = 0;
89 
90  private:
91  // ---------- member data --------------------------------
92  };
93 } // namespace edm
94 
95 #endif
virtual void openFile(FileBlock const &fb)=0
std::array< SelectedProducts, NumBranchTypes > SelectedProductsForBranchType
virtual void writeLumiAsync(WaitingTaskHolder iTask, LuminosityBlockPrincipal const &, ProcessContext const *, ActivityRegistry *)=0
OutputModuleCommunicator & operator=(const OutputModuleCommunicator &)=delete
virtual bool wantAllEvents() const =0
virtual bool limitReached() const =0
virtual void setEventSelectionInfo(std::map< std::string, std::vector< std::pair< std::string, int > > > const &outputModulePathPositions, bool anyProductProduced)=0
virtual void writeProcessBlockAsync(WaitingTaskHolder iTask, ProcessBlockPrincipal const &, ProcessContext const *, ActivityRegistry *)=0
virtual void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &, ProcessBlockHelperBase const &)=0
virtual bool shouldWeCloseFile() const =0
virtual void configure(OutputModuleDescription const &desc)=0
HLT enums.
virtual SelectedProductsForBranchType const & keptProducts() const =0
virtual ModuleDescription const & description() const =0
virtual void writeRunAsync(WaitingTaskHolder iTask, RunPrincipal const &, ProcessContext const *, ActivityRegistry *, MergeableRunProductMetadata const *)=0