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 #include "boost/utility.hpp" 00009 00010 #include <memory> 00011 #include <vector> 00012 00013 namespace edm { 00014 class ActionTable; 00015 class ActivityRegistry; 00016 class CommonParams; 00017 class ParameterSet; 00018 class ProcessConfiguration; 00019 class ProductRegistry; 00020 class Schedule; 00021 class SignallingProductRegistry; 00022 00023 struct ScheduleItems : private boost::noncopyable { 00024 ScheduleItems(); 00025 00026 ScheduleItems(ProductRegistry const& preg); 00027 00028 ServiceToken 00029 initServices(std::vector<ParameterSet>& servicePSets, 00030 ParameterSet& processPSet, 00031 ServiceToken const& iToken, 00032 serviceregistry::ServiceLegacy iLegacy, 00033 bool associate); 00034 00035 ServiceToken 00036 addCPRandTNS(ParameterSet const& parameterSet, ServiceToken const& token); 00037 00038 boost::shared_ptr<CommonParams> 00039 initMisc(ParameterSet& parameterSet); 00040 00041 std::auto_ptr<Schedule> 00042 initSchedule(ParameterSet& parameterSet, 00043 ParameterSet const* subProcessPSet); 00044 00045 void 00046 clear(); 00047 00048 boost::shared_ptr<ActivityRegistry> actReg_; 00049 boost::shared_ptr<SignallingProductRegistry> preg_; 00050 boost::shared_ptr<ActionTable const> act_table_; 00051 boost::shared_ptr<ProcessConfiguration> processConfiguration_; 00052 }; 00053 } 00054 00055 #endif