Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:12:05

0001 #ifndef FWCore_Framework_ScheduleInfo_h
0002 #define FWCore_Framework_ScheduleInfo_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Framework
0006 // Class  :     ScheduleInfo
0007 //
0008 /**\class ScheduleInfo ScheduleInfo.h FWCore/Framework/interface/ScheduleInfo.h
0009 
0010  Description: Provides module and path information to EDLoopers
0011 
0012  Usage:
0013     This class allows EDLoopers to find out about the configuration of module and paths in the process.
0014 
0015 */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Thu Jul 15 19:39:56 CEST 2010
0019 //
0020 
0021 // system include files
0022 #include <vector>
0023 #include <string>
0024 
0025 // user include files
0026 
0027 // forward declarations
0028 namespace edm {
0029   class ParameterSet;
0030   class Schedule;
0031 
0032   class ScheduleInfo {
0033   public:
0034     ScheduleInfo(const Schedule*);
0035     virtual ~ScheduleInfo();
0036 
0037     // ---------- const member functions ---------------------
0038 
0039     ///adds to oLabelsToFill the labels for all modules used in the process
0040     void availableModuleLabels(std::vector<std::string>& oLabelsToFill) const;
0041 
0042     /**returns a pointer to the parameters for the module with label iLabel, returns 0 if 
0043        no module exists with that label.
0044        */
0045     const edm::ParameterSet* parametersForModule(const std::string& iLabel) const;
0046 
0047     ///adds to oLabelsToFill the labels for all paths in the process
0048     void availablePaths(std::vector<std::string>& oLabelsToFill) const;
0049 
0050     ///add to oLabelsToFill in execution order the labels of all modules in path iPathLabel
0051     void modulesInPath(const std::string& iPathLabel, std::vector<std::string>& oLabelsToFill) const;
0052     // ---------- static member functions --------------------
0053 
0054     // ---------- member functions ---------------------------
0055 
0056   private:
0057     //ScheduleInfo(const ScheduleInfo&); // stop default
0058 
0059     //const ScheduleInfo& operator=(const ScheduleInfo&); // stop default
0060 
0061     // ---------- member data --------------------------------
0062     const Schedule* schedule_;
0063   };
0064 
0065 }  // namespace edm
0066 
0067 #endif