00001 #ifndef FWCore_Framework_ScheduleItems_h 00002 #define FWCore_Framework_ScheduleItems_h 00003 00004 #include "FWCore/ServiceRegistry/interface/ServiceLegacy.h" 00005 #include "FWCore/ServiceRegistry/interface/ServiceToken.h" 00006 00007 #include "boost/shared_ptr.hpp" 00008 00009 #include <memory> 00010 #include <vector> 00011 00012 namespace edm { 00013 class ActionTable; 00014 class ActivityRegistry; 00015 class BranchIDListHelper; 00016 class CommonParams; 00017 class OutputModule; 00018 class ParameterSet; 00019 class ProcessConfiguration; 00020 class ProductRegistry; 00021 class Schedule; 00022 class SignallingProductRegistry; 00023 00024 struct ScheduleItems { 00025 ScheduleItems(); 00026 00027 ScheduleItems(ProductRegistry const& preg, BranchIDListHelper const& branchIDListHelper, OutputModule const& om); 00028 00029 ScheduleItems(ScheduleItems const&) = delete; // Disallow copying and moving 00030 ScheduleItems& operator=(ScheduleItems const&) = delete; // Disallow copying and moving 00031 00032 ServiceToken 00033 initServices(std::vector<ParameterSet>& servicePSets, 00034 ParameterSet& processPSet, 00035 ServiceToken const& iToken, 00036 serviceregistry::ServiceLegacy iLegacy, 00037 bool associate); 00038 00039 ServiceToken 00040 addCPRandTNS(ParameterSet const& parameterSet, ServiceToken const& token); 00041 00042 boost::shared_ptr<CommonParams> 00043 initMisc(ParameterSet& parameterSet); 00044 00045 std::auto_ptr<Schedule> 00046 initSchedule(ParameterSet& parameterSet, 00047 ParameterSet const* subProcessPSet); 00048 00049 void 00050 clear(); 00051 00052 boost::shared_ptr<ActivityRegistry> actReg_; 00053 std::unique_ptr<SignallingProductRegistry> preg_; 00054 boost::shared_ptr<BranchIDListHelper> branchIDListHelper_; 00055 std::unique_ptr<ActionTable const> act_table_; 00056 boost::shared_ptr<ProcessConfiguration> processConfiguration_; 00057 }; 00058 } 00059 00060 #endif