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
29 
30 // forward declarations
31 namespace edm {
32 
33  class ActivityRegistry;
34  class MergeableRunProductMetadata;
35  class ProcessContext;
36  class ThinnedAssociationsHelper;
37  class WaitingTaskHolder;
38 
40  public:
41  OutputModuleCommunicator() = default;
44  virtual ~OutputModuleCommunicator();
45 
46  virtual void closeFile() = 0;
47 
49  virtual bool shouldWeCloseFile() const = 0;
50 
52  virtual bool wantAllEvents() const = 0;
53 
54  virtual void openFile(FileBlock const& fb) = 0;
55 
56  virtual void writeProcessBlockAsync(WaitingTaskHolder iTask,
57  ProcessBlockPrincipal const&,
58  ProcessContext const*,
59  ActivityRegistry*) = 0;
60 
61  virtual void writeRunAsync(WaitingTaskHolder iTask,
62  RunPrincipal const&,
63  ProcessContext const*,
65  MergeableRunProductMetadata const*) = 0;
66 
67  virtual void writeLumiAsync(WaitingTaskHolder iTask,
69  ProcessContext const*,
70  ActivityRegistry*) = 0;
71 
73  virtual bool limitReached() const = 0;
74 
75  virtual void configure(OutputModuleDescription const& desc) = 0;
76 
77  virtual SelectedProductsForBranchType const& keptProducts() const = 0;
78 
79  virtual void selectProducts(ProductRegistry const& preg, ThinnedAssociationsHelper const&) = 0;
80 
81  virtual void setEventSelectionInfo(
82  std::map<std::string, std::vector<std::pair<std::string, int> > > const& outputModulePathPositions,
83  bool anyProductProduced) = 0;
84 
85  virtual ModuleDescription const& description() const = 0;
86 
87  private:
88  // ---------- member data --------------------------------
89  };
90 } // namespace edm
91 
92 #endif
edm::OutputModuleCommunicator::writeProcessBlockAsync
virtual void writeProcessBlockAsync(WaitingTaskHolder iTask, ProcessBlockPrincipal const &, ProcessContext const *, ActivityRegistry *)=0
ActivityRegistry
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ProcessContext
Definition: ProcessContext.h:27
edm::LuminosityBlockPrincipal
Definition: LuminosityBlockPrincipal.h:31
edm::OutputModuleCommunicator::writeRunAsync
virtual void writeRunAsync(WaitingTaskHolder iTask, RunPrincipal const &, ProcessContext const *, ActivityRegistry *, MergeableRunProductMetadata const *)=0
edm::ProcessBlockPrincipal
Definition: ProcessBlockPrincipal.h:22
edm::ModuleDescription
Definition: ModuleDescription.h:21
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::FileBlock
Definition: FileBlock.h:20
edm::ActivityRegistry
Definition: ActivityRegistry.h:133
edm::MergeableRunProductMetadata
Definition: MergeableRunProductMetadata.h:52
edm::OutputModuleCommunicator
Definition: OutputModuleCommunicator.h:39
WaitingTaskHolder
edm::OutputModuleCommunicator::configure
virtual void configure(OutputModuleDescription const &desc)=0
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::OutputModuleCommunicator::setEventSelectionInfo
virtual void setEventSelectionInfo(std::map< std::string, std::vector< std::pair< std::string, int > > > const &outputModulePathPositions, bool anyProductProduced)=0
edm::OutputModuleCommunicator::shouldWeCloseFile
virtual bool shouldWeCloseFile() const =0
edm::ThinnedAssociationsHelper
Definition: ThinnedAssociationsHelper.h:37
edm::WaitingTaskHolder
Definition: WaitingTaskHolder.h:30
edm::OutputModuleCommunicator::openFile
virtual void openFile(FileBlock const &fb)=0
edm::OutputModuleCommunicator::OutputModuleCommunicator
OutputModuleCommunicator()=default
edm::OutputModuleCommunicator::description
virtual ModuleDescription const & description() const =0
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::OutputModuleCommunicator::wantAllEvents
virtual bool wantAllEvents() const =0
edm::OutputModuleCommunicator::operator=
OutputModuleCommunicator & operator=(const OutputModuleCommunicator &)=delete
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
edm::OutputModuleCommunicator::~OutputModuleCommunicator
virtual ~OutputModuleCommunicator()
Definition: OutputModuleCommunicator.cc:20
edm::SelectedProductsForBranchType
std::array< SelectedProducts, NumBranchTypes > SelectedProductsForBranchType
Definition: SelectedProducts.h:13
Frameworkfwd.h
edm::OutputModuleCommunicator::keptProducts
virtual SelectedProductsForBranchType const & keptProducts() const =0
edm::OutputModuleCommunicator::closeFile
virtual void closeFile()=0
edm::OutputModuleCommunicator::selectProducts
virtual void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &)=0
edm::OutputModuleCommunicator::limitReached
virtual bool limitReached() const =0
edm::OutputModuleCommunicator::writeLumiAsync
virtual void writeLumiAsync(WaitingTaskHolder iTask, LuminosityBlockPrincipal const &, ProcessContext const *, ActivityRegistry *)=0
genParticles_cff.map
map
Definition: genParticles_cff.py:11
edm::OutputModuleDescription
Definition: OutputModuleDescription.h:17
edm::RunPrincipal
Definition: RunPrincipal.h:34
benchmark_cfg.fb
fb
Definition: benchmark_cfg.py:14
SelectedProducts.h