CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RunPrincipal.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_RunPrincipal_h
2 #define FWCore_Framework_RunPrincipal_h
3 
4 /*----------------------------------------------------------------------
5 
6 RunPrincipal: This is the class responsible for management of
7 per run EDProducts. It is not seen by reconstruction code;
8 such code sees the Run class, which is a proxy for RunPrincipal.
9 
10 The major internal component of the RunPrincipal
11 is the DataBlock.
12 
13 ----------------------------------------------------------------------*/
14 
15 #include <string>
16 #include <vector>
17 
18 #include "boost/shared_ptr.hpp"
19 
22 
23 namespace edm {
24 
25  class HistoryAppender;
26  class UnscheduledHandler;
27 
28  class RunPrincipal : public Principal {
29  public:
31  typedef Principal Base;
32 
34  boost::shared_ptr<RunAuxiliary> aux,
35  boost::shared_ptr<ProductRegistry const> reg,
36  ProcessConfiguration const& pc,
37  HistoryAppender* historyAppender);
39 
41 
42  RunAuxiliary const& aux() const {
43  return *aux_;
44  }
45 
46  RunNumber_t run() const {
47  return aux().run();
48  }
49 
50  RunID const& id() const {
51  return aux().id();
52  }
53 
54  Timestamp const& beginTime() const {
55  return aux().beginTime();
56  }
57 
58  Timestamp const& endTime() const {
59  return aux().endTime();
60  }
61 
62  void setEndTime(Timestamp const& time) {
63  aux_->setEndTime(time);
64  }
65 
67  return aux_->mergeAuxiliary(aux);
68  }
69 
70  void setUnscheduledHandler(boost::shared_ptr<UnscheduledHandler>) {}
71 
72  void put(
73  ConstBranchDescription const& bd,
74  WrapperOwningHolder const& edp);
75 
76  void readImmediate() const;
77 
78  void setComplete() {
79  complete_ = true;
80  }
81 
82  private:
83 
84  virtual bool isComplete_() const override {return complete_;}
85 
86  virtual bool unscheduledFill(std::string const&) const override {return false;}
87 
88  void resolveProductImmediate(ProductHolderBase const& phb) const;
89 
90  // A vector of product holders.
91  boost::shared_ptr<RunAuxiliary> aux_;
92 
93  bool complete_;
94  };
95 }
96 #endif
97 
RunPrincipal(boost::shared_ptr< RunAuxiliary > aux, boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc, HistoryAppender *historyAppender)
Definition: RunPrincipal.cc:11
void fillRunPrincipal(DelayedReader *reader=0)
Definition: RunPrincipal.cc:21
Timestamp const & endTime() const
Definition: RunAuxiliary.h:40
boost::shared_ptr< RunAuxiliary > aux_
Definition: RunPrincipal.h:91
RunNumber_t run() const
Definition: RunPrincipal.h:46
void readImmediate() const
Definition: RunPrincipal.cc:50
void mergeAuxiliary(RunAuxiliary const &aux)
Definition: RunPrincipal.h:66
void setEndTime(Timestamp const &time)
Definition: RunPrincipal.h:62
RunID const & id() const
Definition: RunAuxiliary.h:37
Timestamp const & beginTime() const
Definition: RunAuxiliary.h:39
void put(ConstBranchDescription const &bd, WrapperOwningHolder const &edp)
Definition: RunPrincipal.cc:32
Timestamp const & beginTime() const
Definition: RunPrincipal.h:54
void resolveProductImmediate(ProductHolderBase const &phb) const
Definition: RunPrincipal.cc:62
Timestamp const & endTime() const
Definition: RunPrincipal.h:58
RunAuxiliary const & aux() const
Definition: RunPrincipal.h:42
void setUnscheduledHandler(boost::shared_ptr< UnscheduledHandler >)
Definition: RunPrincipal.h:70
RunID const & id() const
Definition: RunPrincipal.h:50
DelayedReader * reader() const
Definition: Principal.h:154
RunAuxiliary Auxiliary
Definition: RunPrincipal.h:30
virtual bool unscheduledFill(std::string const &) const override
Definition: RunPrincipal.h:86
virtual bool isComplete_() const override
Definition: RunPrincipal.h:84
unsigned int RunNumber_t
Definition: EventRange.h:32
RunNumber_t run() const
Definition: RunAuxiliary.h:41