CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 ProcessContext;
34  class ThinnedAssociationsHelper;
35 
37  {
38 
39  public:
40  OutputModuleCommunicator() = default;
41  virtual ~OutputModuleCommunicator();
42 
43  virtual void closeFile() = 0;
44 
46  virtual bool shouldWeCloseFile() const = 0;
47 
48  virtual void openNewFileIfNeeded() = 0;
49 
51  virtual bool wantAllEvents() const = 0;
52 
53  virtual void openFile(FileBlock const& fb) = 0;
54 
55  virtual void writeRun(RunPrincipal const& rp, ProcessContext const*) = 0;
56 
57  virtual void writeLumi(LuminosityBlockPrincipal const& lbp, ProcessContext const*) = 0;
58 
60  virtual bool limitReached() const = 0;
61 
62  virtual void configure(OutputModuleDescription const& desc) = 0;
63 
64  virtual SelectedProductsForBranchType const& keptProducts() const = 0;
65 
66  virtual void selectProducts(ProductRegistry const& preg, ThinnedAssociationsHelper const&) = 0;
67 
68  virtual void setEventSelectionInfo(std::map<std::string, std::vector<std::pair<std::string, int> > > const& outputModulePathPositions,
69  bool anyProductProduced) = 0;
70 
71  virtual ModuleDescription const& description() const = 0;
72 
73  private:
74  OutputModuleCommunicator(const OutputModuleCommunicator&) = delete; // stop default
75 
76  const OutputModuleCommunicator& operator=(const OutputModuleCommunicator&) = delete; // stop default
77 
78  // ---------- member data --------------------------------
79 
80  };
81 }
82 
83 #endif
virtual void openFile(FileBlock const &fb)=0
virtual void writeRun(RunPrincipal const &rp, ProcessContext const *)=0
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 openNewFileIfNeeded()=0
virtual void writeLumi(LuminosityBlockPrincipal const &lbp, ProcessContext const *)=0
virtual bool shouldWeCloseFile() const =0
const OutputModuleCommunicator & operator=(const OutputModuleCommunicator &)=delete
boost::array< SelectedProducts, NumBranchTypes > SelectedProductsForBranchType
virtual void selectProducts(ProductRegistry const &preg, ThinnedAssociationsHelper const &)=0
virtual void configure(OutputModuleDescription const &desc)=0
virtual SelectedProductsForBranchType const & keptProducts() const =0
preg
Definition: Schedule.cc:370
virtual ModuleDescription const & description() const =0