File indexing completed on 2025-07-24 02:01:35
0001 #ifndef FWCore_Framework_ScheduleBuilder_h
0002 #define FWCore_Framework_ScheduleBuilder_h
0003
0004 #include "FWCore/Framework/interface/ModuleRegistry.h"
0005 #include "FWCore/Framework/interface/ModuleInPath.h"
0006 #include "FWCore/ServiceRegistry/interface/ActivityRegistry.h"
0007 #include "FWCore/Utilities/interface/propagate_const.h"
0008
0009 #include <memory>
0010 #include <vector>
0011 #include <string>
0012 namespace edm {
0013 class ParameterSet;
0014 class PreallocationConfiguration;
0015 class SignallingProductRegistryFiller;
0016 class ModuleDescription;
0017 class TriggerResultInserter;
0018 class PathStatusInserter;
0019 class EndPathStatusInserter;
0020 class ProcessConfiguration;
0021
0022 namespace service {
0023 class TriggerNamesService;
0024 }
0025
0026 struct ScheduleBuilder {
0027 public:
0028 ScheduleBuilder(ModuleRegistry& iModuleRegistry,
0029 ParameterSet& ioProcessPSet,
0030 std::vector<std::string> const& iPathNames,
0031 std::vector<std::string> const& iEndPathNames,
0032 PreallocationConfiguration const& iPrealloc,
0033 SignallingProductRegistryFiller& oProductRegistry,
0034 ActivityRegistry& iActivityRegistry,
0035 std::shared_ptr<ProcessConfiguration const> iProcessConfiguration);
0036
0037
0038 std::vector<std::pair<std::string, std::vector<ModuleInPath>>> pathNameAndModules_;
0039 std::vector<std::pair<std::string, std::vector<ModuleInPath>>> endpathNameAndModules_;
0040
0041 std::vector<edm::ModuleDescription const*> allNeededModules_;
0042 std::vector<edm::ModuleDescription const*> unscheduledModules_;
0043
0044 std::shared_ptr<TriggerResultInserter> resultsInserter_;
0045 std::vector<edm::propagate_const<std::shared_ptr<PathStatusInserter>>> pathStatusInserters_;
0046 std::vector<edm::propagate_const<std::shared_ptr<EndPathStatusInserter>>> endPathStatusInserters_;
0047 };
0048 }
0049 #endif