Back to home page

Project CMSSW displayed by LXR

 
 

    


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     //the order matches the order from iPathNames and iEndPathNames
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 }  // namespace edm
0049 #endif