CMS 3D CMS Logo

ScheduleItems.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ScheduleItems_h
2 #define FWCore_Framework_ScheduleItems_h
3 
7 
8 #include <memory>
9 #include <vector>
10 
11 namespace edm {
12  class ExceptionToActionTable;
13  class ActivityRegistry;
14  class BranchIDListHelper;
15  class ThinnedAssociationsHelper;
16  struct CommonParams;
17  class SubProcess;
18  class ParameterSet;
19  class ProcessConfiguration;
20  class ProcessContext;
21  class ProductRegistry;
22  class Schedule;
24  class StreamID;
25  class PreallocationConfiguration;
26 
27  struct ScheduleItems {
28  ScheduleItems();
29 
30  ScheduleItems(ProductRegistry const& preg, SubProcess const& om);
31 
32  ScheduleItems(ScheduleItems const&) = delete; // Disallow copying and moving
33  ScheduleItems& operator=(ScheduleItems const&) = delete; // Disallow copying and moving
34 
36  initServices(std::vector<ParameterSet>& servicePSets,
37  ParameterSet& processPSet,
38  ServiceToken const& iToken,
40  bool associate);
41 
43  addCPRandTNS(ParameterSet const& parameterSet, ServiceToken const& token);
44 
45  std::shared_ptr<CommonParams>
46  initMisc(ParameterSet& parameterSet);
47 
48  std::unique_ptr<Schedule>
49  initSchedule(ParameterSet& parameterSet,
50  bool hasSubprocesses,
51  PreallocationConfiguration const& iAllocConfig,
52  ProcessContext const*);
53 
54  void
55  clear();
56 
57  std::shared_ptr<SignallingProductRegistry const> preg() const {return get_underlying_safe(preg_);}
58  std::shared_ptr<SignallingProductRegistry>& preg() {return get_underlying_safe(preg_);}
59  std::shared_ptr<BranchIDListHelper const> branchIDListHelper() const {return get_underlying_safe(branchIDListHelper_);}
60  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() {return get_underlying_safe(branchIDListHelper_);}
61  std::shared_ptr<ThinnedAssociationsHelper const> thinnedAssociationsHelper() const {return get_underlying_safe(thinnedAssociationsHelper_);}
62  std::shared_ptr<ThinnedAssociationsHelper>& thinnedAssociationsHelper() {return get_underlying_safe(thinnedAssociationsHelper_);}
63  std::shared_ptr<ProcessConfiguration const> processConfiguration() const {return get_underlying_safe(processConfiguration_);}
64  std::shared_ptr<ProcessConfiguration>& processConfiguration() {return get_underlying_safe(processConfiguration_);}
65 
66  std::shared_ptr<ActivityRegistry> actReg_; // We do not use propagate_const because the registry itself is mutable.
70  std::unique_ptr<ExceptionToActionTable const> act_table_;
72  };
73 }
74 #endif
std::shared_ptr< ActivityRegistry > actReg_
Definition: ScheduleItems.h:66
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: ScheduleItems.h:70
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Definition: ScheduleItems.h:61
edm::propagate_const< std::shared_ptr< SignallingProductRegistry > > preg_
Definition: ScheduleItems.h:67
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: ScheduleItems.h:69
ScheduleItems & operator=(ScheduleItems const &)=delete
std::shared_ptr< SignallingProductRegistry > & preg()
Definition: ScheduleItems.h:58
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: ScheduleItems.h:68
std::shared_ptr< CommonParams > initMisc(ParameterSet &parameterSet)
std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
std::shared_ptr< ProcessConfiguration > & processConfiguration()
Definition: ScheduleItems.h:64
edm::propagate_const< std::shared_ptr< ProcessConfiguration > > processConfiguration_
Definition: ScheduleItems.h:71
std::shared_ptr< ProcessConfiguration const > processConfiguration() const
Definition: ScheduleItems.h:63
ServiceToken initServices(std::vector< ParameterSet > &servicePSets, ParameterSet &processPSet, ServiceToken const &iToken, serviceregistry::ServiceLegacy iLegacy, bool associate)
std::shared_ptr< ThinnedAssociationsHelper > & thinnedAssociationsHelper()
Definition: ScheduleItems.h:62
ServiceToken addCPRandTNS(ParameterSet const &parameterSet, ServiceToken const &token)
HLT enums.
std::shared_ptr< SignallingProductRegistry const > preg() const
Definition: ScheduleItems.h:57
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: ScheduleItems.h:59
std::unique_ptr< Schedule > initSchedule(ParameterSet &parameterSet, bool hasSubprocesses, PreallocationConfiguration const &iAllocConfig, ProcessContext const *)
ParameterSet const & parameterSet(Provenance const &provenance)
Definition: Provenance.cc:11
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
Definition: ScheduleItems.h:60