1 #ifndef Framework_ComponentMaker_h
2 #define Framework_ComponentMaker_h
23 #include "boost/shared_ptr.hpp"
33 namespace eventsetup {
56 template <
class T,
class TComponent>
99 template<
class T,
class TComponent>
100 boost::shared_ptr<typename ComponentMaker<T,TComponent>::base_type>
105 boost::shared_ptr<typename T::base_type>
const* alreadyMadeComponent = T::getAlreadyMadeComponent(esController, iConfiguration);
107 if (alreadyMadeComponent) {
108 this->logInfoWhenSharing(iConfiguration);
109 boost::shared_ptr<TComponent> component(boost::static_pointer_cast<TComponent, typename T::base_type>(*alreadyMadeComponent));
110 T::addTo(iProvider, component);
114 boost::shared_ptr<TComponent> component(
new TComponent(iConfiguration));
116 this->createComponentDescription(iConfiguration);
119 this->setDescriptionForFinder(component.get(),
description);
120 this->setPostConstruction(component.get(),iConfiguration);
121 T::addTo(iProvider, component);
122 T::putComponent(esController, iConfiguration, component);
void setDescription(const ComponentDescription &iDescription)
const ComponentMaker & operator=(const ComponentMaker &)
virtual ~ComponentMakerBaseHelper()
void setPostConstruction(DataProxyProvider *iProv, const edm::ParameterSet &iPSet) const
void setDescriptionForFinder(const eventsetup::ComponentDescription &iDescription)
void logInfoWhenSharing(ParameterSet const &iConfiguration) const
void setPostConstruction(void *, const edm::ParameterSet &) const
void setAppendToDataLabel(const edm::ParameterSet &)
void setDescription(DataProxyProvider *iProv, const ComponentDescription &iDesc) const
virtual boost::shared_ptr< base_type > addTo(EventSetupsController &esController, EventSetupProvider &iProvider, ParameterSet const &iConfiguration) const =0
virtual boost::shared_ptr< base_type > addTo(EventSetupsController &esController, EventSetupProvider &iProvider, ParameterSet const &iConfiguration) const
void setDescription(void *, const ComponentDescription &) const
void setDescriptionForFinder(void *, const ComponentDescription &) const
void setDescriptionForFinder(EventSetupRecordIntervalFinder *iFinder, const ComponentDescription &iDesc) const
ComponentDescription createComponentDescription(ParameterSet const &iConfiguration) const