Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Package:     Framework
0004 // Class  :     ModuleFactory
0005 //
0006 // Implementation:
0007 //     <Notes on implementation>
0008 //
0009 // Author:      Chris Jones
0010 // Created:     Wed May 25 19:27:44 EDT 2005
0011 //
0012 
0013 // system include files
0014 
0015 // user include files
0016 #include "FWCore/Framework/interface/ModuleFactory.h"
0017 #include "FWCore/Framework/interface/EventSetupProvider.h"
0018 #include "FWCore/Framework/interface/EventSetupsController.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h"
0020 
0021 //
0022 // constants, enums and typedefs
0023 //
0024 namespace edm {
0025   namespace eventsetup {
0026 
0027     //
0028     // static member functions
0029     //
0030     std::string ModuleMakerTraits::name() { return "CMS EDM Framework ESModule"; }
0031     std::string const& ModuleMakerTraits::baseType() { return ParameterSetDescriptionFillerBase::kBaseForESProducer; }
0032     void ModuleMakerTraits::addTo(EventSetupProvider& iProvider,
0033                                   std::shared_ptr<ESProductResolverProvider> iComponent,
0034                                   ParameterSet const&,
0035                                   bool) {
0036       iProvider.add(iComponent);
0037     }
0038 
0039     void ModuleMakerTraits::replaceExisting(EventSetupProvider& iProvider,
0040                                             std::shared_ptr<ESProductResolverProvider> iComponent) {
0041       iProvider.replaceExisting(iComponent);
0042     }
0043 
0044     std::shared_ptr<ModuleMakerTraits::base_type> ModuleMakerTraits::getComponentAndRegisterProcess(
0045         EventSetupsController& esController, ParameterSet const& iConfiguration) {
0046       return esController.getESProducerAndRegisterProcess(iConfiguration, esController.indexOfNextProcess());
0047     }
0048 
0049     void ModuleMakerTraits::putComponent(EventSetupsController& esController,
0050                                          ParameterSet& iConfiguration,
0051                                          std::shared_ptr<base_type> const& component) {
0052       esController.putESProducer(iConfiguration, component, esController.indexOfNextProcess());
0053     }
0054   }  // namespace eventsetup
0055 }  // namespace edm
0056 COMPONENTFACTORY_GET(edm::eventsetup::ModuleMakerTraits);