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 <memory>
16 #include <string>
17 #include <vector>
18 
19 #include "boost/shared_ptr.hpp"
20 
25 
26 namespace edm {
27  class UnscheduledHandler;
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);
38 
39  void fillRunPrincipal(
40  boost::shared_ptr<BranchMapper> mapper = boost::shared_ptr<BranchMapper>(new BranchMapper),
41  boost::shared_ptr<DelayedReader> rtrv = boost::shared_ptr<DelayedReader>(new NoDelayedReader));
42 
43  RunAuxiliary const& aux() const {
44  return *aux_;
45  }
46 
47  RunNumber_t run() const {
48  return aux().run();
49  }
50 
51  RunID const& id() const {
52  return aux().id();
53  }
54 
55  Timestamp const& beginTime() const {
56  return aux().beginTime();
57  }
58 
59  Timestamp const& endTime() const {
60  return aux().endTime();
61  }
62 
63  void setEndTime(Timestamp const& time) {
64  aux_->setEndTime(time);
65  }
66 
68  return aux_->mergeAuxiliary(aux);
69  }
70 
71  // ----- Mark this RunPrincipal as having been updated in the current Process.
72  void addToProcessHistory();
73 
74  void checkProcessHistory() const;
75 
76  void setUnscheduledHandler(boost::shared_ptr<UnscheduledHandler>) {}
77 
78  void put(
79  ConstBranchDescription const& bd,
80  std::auto_ptr<EDProduct> edp,
81  std::auto_ptr<ProductProvenance> productProvenance);
82 
83  void readImmediate() const;
84 
85  void swap(RunPrincipal&);
86 
87  private:
88 
89  virtual bool unscheduledFill(std::string const&) const {return false;}
90 
91  void resolveProductImmediate(Group const& g) const;
92 
93  // A vector of groups.
94  boost::shared_ptr<RunAuxiliary> aux_;
95  };
96 }
97 #endif
98 
void checkProcessHistory() const
Definition: RunPrincipal.cc:80
Timestamp const & endTime() const
Definition: RunAuxiliary.h:40
boost::shared_ptr< RunAuxiliary > aux_
Definition: RunPrincipal.h:94
RunNumber_t run() const
Definition: RunPrincipal.h:47
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
void readImmediate() const
Definition: RunPrincipal.cc:53
void mergeAuxiliary(RunAuxiliary const &aux)
Definition: RunPrincipal.h:67
void setEndTime(Timestamp const &time)
Definition: RunPrincipal.h:63
RunID const & id() const
Definition: RunAuxiliary.h:37
Timestamp const & beginTime() const
Definition: RunAuxiliary.h:39
Timestamp const & beginTime() const
Definition: RunPrincipal.h:55
void addToProcessHistory()
Definition: RunPrincipal.cc:94
Timestamp const & endTime() const
Definition: RunPrincipal.h:59
void fillRunPrincipal(boost::shared_ptr< BranchMapper > mapper=boost::shared_ptr< BranchMapper >(new BranchMapper), boost::shared_ptr< DelayedReader > rtrv=boost::shared_ptr< DelayedReader >(new NoDelayedReader))
Definition: RunPrincipal.cc:17
RunAuxiliary const & aux() const
Definition: RunPrincipal.h:43
void setUnscheduledHandler(boost::shared_ptr< UnscheduledHandler >)
Definition: RunPrincipal.h:76
RunID const & id() const
Definition: RunPrincipal.h:51
virtual bool unscheduledFill(std::string const &) const
Definition: RunPrincipal.h:89
void swap(RunPrincipal &)
RunPrincipal(boost::shared_ptr< RunAuxiliary > aux, boost::shared_ptr< ProductRegistry const > reg, ProcessConfiguration const &pc)
Definition: RunPrincipal.cc:8
RunAuxiliary Auxiliary
Definition: RunPrincipal.h:30
void put(ConstBranchDescription const &bd, std::auto_ptr< EDProduct > edp, std::auto_ptr< ProductProvenance > productProvenance)
Definition: RunPrincipal.cc:34
unsigned int RunNumber_t
Definition: EventRange.h:32
void resolveProductImmediate(Group const &g) const
Definition: RunPrincipal.cc:66
RunNumber_t run() const
Definition: RunAuxiliary.h:41