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 
9 
10 #include <memory>
11 #include <vector>
12 
13 namespace edm {
14  class ExceptionToActionTable;
15  class ActivityRegistry;
16  class BranchIDListHelper;
17  class ThinnedAssociationsHelper;
18  struct CommonParams;
19  class SubProcess;
20  class ParameterSet;
21  class ProcessConfiguration;
22  class ProcessContext;
23  class ProductRegistry;
24  class Schedule;
26  class StreamID;
27  class PreallocationConfiguration;
28  class SubProcessParentageHelper;
29 
30  struct ScheduleItems {
31  ScheduleItems();
32 
34  SubProcess const& om,
35  SubProcessBlockHelper& subProcessBlockHelper,
36  ProcessBlockHelperBase const& parentProcessBlockHelper);
37 
38  ScheduleItems(ScheduleItems const&) = delete; // Disallow copying and moving
39  ScheduleItems& operator=(ScheduleItems const&) = delete; // Disallow copying and moving
40 
41  ServiceToken initServices(std::vector<ParameterSet>& servicePSets,
42  ParameterSet& processPSet,
43  ServiceToken const& iToken,
45  bool associate);
46 
48 
49  std::shared_ptr<CommonParams> initMisc(ParameterSet& parameterSet);
50 
51  std::unique_ptr<Schedule> initSchedule(ParameterSet& parameterSet,
52  bool hasSubprocesses,
53  PreallocationConfiguration const& iAllocConfig,
54  ProcessContext const*,
55  ProcessBlockHelperBase& processBlockHelper);
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 {
61  }
62  std::shared_ptr<BranchIDListHelper>& branchIDListHelper() { return get_underlying_safe(branchIDListHelper_); }
63  std::shared_ptr<ThinnedAssociationsHelper const> thinnedAssociationsHelper() const {
65  }
66  std::shared_ptr<ThinnedAssociationsHelper>& thinnedAssociationsHelper() {
68  }
69  std::shared_ptr<SubProcessParentageHelper>& subProcessParentageHelper() {
71  }
72  std::shared_ptr<ProcessConfiguration const> processConfiguration() const {
74  }
75  std::shared_ptr<ProcessConfiguration>& processConfiguration() { return get_underlying_safe(processConfiguration_); }
76 
77  std::shared_ptr<ActivityRegistry> actReg_; // We do not use propagate_const because the registry itself is mutable.
82  std::unique_ptr<ExceptionToActionTable const> act_table_;
84  };
85 } // namespace edm
86 #endif
edm::ScheduleItems::preg
std::shared_ptr< SignallingProductRegistry const > preg() const
Definition: ScheduleItems.h:57
edm::ScheduleItems::processConfiguration
std::shared_ptr< ProcessConfiguration > & processConfiguration()
Definition: ScheduleItems.h:75
edm::ScheduleItems::processConfiguration
std::shared_ptr< ProcessConfiguration const > processConfiguration() const
Definition: ScheduleItems.h:72
edm::SubProcess
Definition: SubProcess.h:52
ActivityRegistry
edm::ScheduleItems::processConfiguration_
edm::propagate_const< std::shared_ptr< ProcessConfiguration > > processConfiguration_
Definition: ScheduleItems.h:83
propagate_const.h
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ProcessContext
Definition: ProcessContext.h:27
edm::ScheduleItems::operator=
ScheduleItems & operator=(ScheduleItems const &)=delete
edm::ScheduleItems::thinnedAssociationsHelper_
edm::propagate_const< std::shared_ptr< ThinnedAssociationsHelper > > thinnedAssociationsHelper_
Definition: ScheduleItems.h:80
edm::ScheduleItems::thinnedAssociationsHelper
std::shared_ptr< ThinnedAssociationsHelper const > thinnedAssociationsHelper() const
Definition: ScheduleItems.h:63
edm::ScheduleItems
Definition: ScheduleItems.h:30
ServiceToken.h
edm::get_underlying_safe
constexpr std::shared_ptr< T > & get_underlying_safe(propagate_const< std::shared_ptr< T >> &iP)
Definition: get_underlying_safe.h:41
edm::ScheduleItems::preg_
edm::propagate_const< std::shared_ptr< SignallingProductRegistry > > preg_
Definition: ScheduleItems.h:78
edm::ScheduleItems::initMisc
std::shared_ptr< CommonParams > initMisc(ParameterSet &parameterSet)
Definition: ScheduleItems.cc:123
edm::ScheduleItems::branchIDListHelper_
edm::propagate_const< std::shared_ptr< BranchIDListHelper > > branchIDListHelper_
Definition: ScheduleItems.h:79
edm::ScheduleItems::addCPRandTNS
ServiceToken addCPRandTNS(ParameterSet const &parameterSet, ServiceToken const &token)
Definition: ScheduleItems.cc:106
edm::ProductRegistry
Definition: ProductRegistry.h:37
edm::parameterSet
ParameterSet const & parameterSet(StableProvenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
edm::ServiceToken
Definition: ServiceToken.h:42
edm::propagate_const
Definition: propagate_const.h:32
edm::ScheduleItems::act_table_
std::unique_ptr< ExceptionToActionTable const > act_table_
Definition: ScheduleItems.h:82
edm::ScheduleItems::branchIDListHelper
std::shared_ptr< BranchIDListHelper > & branchIDListHelper()
Definition: ScheduleItems.h:62
edm::ScheduleItems::actReg_
std::shared_ptr< ActivityRegistry > actReg_
Definition: ScheduleItems.h:77
edm::ScheduleItems::initServices
ServiceToken initServices(std::vector< ParameterSet > &servicePSets, ParameterSet &processPSet, ServiceToken const &iToken, serviceregistry::ServiceLegacy iLegacy, bool associate)
Definition: ScheduleItems.cc:86
edm::ScheduleItems::ScheduleItems
ScheduleItems()
Definition: ScheduleItems.cc:29
edm::ProcessBlockHelperBase
Definition: ProcessBlockHelperBase.h:18
edm::ParameterSet
Definition: ParameterSet.h:47
ParameterSet
Definition: Functions.h:16
edm::ScheduleItems::subProcessParentageHelper_
edm::propagate_const< std::shared_ptr< SubProcessParentageHelper > > subProcessParentageHelper_
Definition: ScheduleItems.h:81
edm::ScheduleItems::branchIDListHelper
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Definition: ScheduleItems.h:59
edm::ScheduleItems::subProcessParentageHelper
std::shared_ptr< SubProcessParentageHelper > & subProcessParentageHelper()
Definition: ScheduleItems.h:69
SignallingProductRegistry
edm::PreallocationConfiguration
Definition: PreallocationConfiguration.h:27
edm::ScheduleItems::initSchedule
std::unique_ptr< Schedule > initSchedule(ParameterSet &parameterSet, bool hasSubprocesses, PreallocationConfiguration const &iAllocConfig, ProcessContext const *, ProcessBlockHelperBase &processBlockHelper)
Definition: ScheduleItems.cc:135
edm::ScheduleItems::thinnedAssociationsHelper
std::shared_ptr< ThinnedAssociationsHelper > & thinnedAssociationsHelper()
Definition: ScheduleItems.h:66
edm::SubProcessBlockHelper
Definition: SubProcessBlockHelper.h:17
ServiceLegacy.h
edm::ScheduleItems::preg
std::shared_ptr< SignallingProductRegistry > & preg()
Definition: ScheduleItems.h:58
get_underlying_safe.h
edm::serviceregistry::ServiceLegacy
ServiceLegacy
Definition: ServiceLegacy.h:29
FWCoreCommonFwd.h
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316