Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-13 02:31:49

0001 #ifndef FWCore_Framework_ModuleChanger_h
0002 #define FWCore_Framework_ModuleChanger_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Framework
0006 // Class  :     ModuleChanger
0007 //
0008 /**\class ModuleChanger ModuleChanger.h FWCore/Framework/interface/ModuleChanger.h
0009 
0010  Description: Handles modifying a module after the job has started
0011 
0012  Usage:
0013     This class is used by an EDLooper at the end of a loop in order to modify the
0014  parameters of a module.
0015 
0016 */
0017 //
0018 // Original Author:  Chris Jones
0019 //         Created:  Thu Jul 15 15:05:17 EDT 2010
0020 //
0021 
0022 // system include files
0023 #include <string>
0024 
0025 // user include files
0026 #include "FWCore/Utilities/interface/propagate_const.h"
0027 #include "FWCore/Framework/interface/ESRecordsToProductResolverIndices.h"
0028 
0029 // forward declarations
0030 
0031 namespace edm {
0032   class ParameterSet;
0033   class Schedule;
0034   class SignallingProductRegistryFiller;
0035 
0036   class ModuleChanger {
0037   public:
0038     ModuleChanger(Schedule*,
0039                   SignallingProductRegistryFiller const* iReg,
0040                   eventsetup::ESRecordsToProductResolverIndices);
0041     ModuleChanger(const ModuleChanger&) = delete;                   // stop default
0042     const ModuleChanger& operator=(const ModuleChanger&) = delete;  // stop default
0043     virtual ~ModuleChanger();
0044 
0045     // ---------- const member functions ---------------------
0046 
0047     // ---------- static member functions --------------------
0048 
0049     // ---------- member functions ---------------------------
0050     bool changeModule(const std::string& iLabel, const ParameterSet& iPSet);
0051 
0052   private:
0053     // ---------- member data --------------------------------
0054     edm::propagate_const<Schedule*> schedule_;
0055     SignallingProductRegistryFiller const* registry_;
0056     eventsetup::ESRecordsToProductResolverIndices indices_;
0057   };
0058 }  // namespace edm
0059 #endif