#include <ComponentMaker.h>
Public Types | |
typedef T::base_type | base_type |
Public Member Functions | |
virtual boost::shared_ptr < base_type > | addTo (EventSetupsController &esController, EventSetupProvider &iProvider, ParameterSet const &iConfiguration, bool replaceExisting) const |
ComponentMaker () | |
Private Member Functions | |
ComponentMaker (const ComponentMaker &) | |
const ComponentMaker & | operator= (const ComponentMaker &) |
void | setDescription (DataProxyProvider *iProv, const ComponentDescription &iDesc) const |
void | setDescription (void *, const ComponentDescription &) const |
void | setDescriptionForFinder (EventSetupRecordIntervalFinder *iFinder, const ComponentDescription &iDesc) const |
void | setDescriptionForFinder (void *, const ComponentDescription &) const |
void | setPostConstruction (void *, const edm::ParameterSet &) const |
void | setPostConstruction (DataProxyProvider *iProv, const edm::ParameterSet &iPSet) const |
Definition at line 57 of file ComponentMaker.h.
typedef T::base_type edm::eventsetup::ComponentMaker< T, TComponent >::base_type |
Reimplemented from edm::eventsetup::ComponentMakerBase< T >.
Definition at line 63 of file ComponentMaker.h.
edm::eventsetup::ComponentMaker< T, TComponent >::ComponentMaker | ( | ) | [inline] |
Definition at line 61 of file ComponentMaker.h.
{}
edm::eventsetup::ComponentMaker< T, TComponent >::ComponentMaker | ( | const ComponentMaker< T, TComponent > & | ) | [private] |
boost::shared_ptr< typename ComponentMaker< T, TComponent >::base_type > ComponentMaker::addTo | ( | EventSetupsController & | esController, |
EventSetupProvider & | iProvider, | ||
ParameterSet const & | iConfiguration, | ||
bool | replaceExisting | ||
) | const [virtual] |
Implements edm::eventsetup::ComponentMakerBase< T >.
Definition at line 102 of file ComponentMaker.h.
References idDealer::description.
{ // This adds components to the EventSetupProvider for the process. It might // make a new component then add it or reuse a component from an earlier // SubProcess or the top level process and add that. if (!replaceExisting) { boost::shared_ptr<typename T::base_type> alreadyMadeComponent = T::getComponentAndRegisterProcess(esController, iConfiguration); if (alreadyMadeComponent) { // This is for the case when a component is shared between // a SubProcess and a previous SubProcess or the top level process // because the component has an identical configuration to a component // from the top level process or earlier SubProcess. boost::shared_ptr<TComponent> component(boost::static_pointer_cast<TComponent, typename T::base_type>(alreadyMadeComponent)); T::addTo(iProvider, component, iConfiguration, true); return component; } } boost::shared_ptr<TComponent> component(new TComponent(iConfiguration)); ComponentDescription description = this->createComponentDescription(iConfiguration); this->setDescription(component.get(),description); this->setDescriptionForFinder(component.get(),description); this->setPostConstruction(component.get(),iConfiguration); if (replaceExisting) { // This case is for ESProducers where in the first pass // the algorithm thought the component could be shared // across SubProcess's because there was an ESProducer // from a previous process with an identical configuration. // But in a later check it was determined that sharing was not // possible because other components associated with the // same record or records that record depends on had // differing configurations. T::replaceExisting(iProvider, component); } else { // This is for the case when a new component is being constructed. // All components for the top level process fall in this category. // Or it could be a SubProcess where neither the top level process // nor any prior SubProcess had a component with exactly the same configuration. T::addTo(iProvider, component, iConfiguration, false); T::putComponent(esController, iConfiguration, component); } return component; }
const ComponentMaker& edm::eventsetup::ComponentMaker< T, TComponent >::operator= | ( | const ComponentMaker< T, TComponent > & | ) | [private] |
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescription | ( | DataProxyProvider * | iProv, |
const ComponentDescription & | iDesc | ||
) | const [inline, private] |
Definition at line 79 of file ComponentMaker.h.
{ iProv->setDescription(iDesc); }
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescription | ( | void * | , |
const ComponentDescription & | |||
) | const [inline, private] |
Definition at line 90 of file ComponentMaker.h.
{ }
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescriptionForFinder | ( | EventSetupRecordIntervalFinder * | iFinder, |
const ComponentDescription & | iDesc | ||
) | const [inline, private] |
Definition at line 82 of file ComponentMaker.h.
{ iFinder->setDescriptionForFinder(iDesc); }
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescriptionForFinder | ( | void * | , |
const ComponentDescription & | |||
) | const [inline, private] |
Definition at line 92 of file ComponentMaker.h.
{ }
void edm::eventsetup::ComponentMaker< T, TComponent >::setPostConstruction | ( | void * | , |
const edm::ParameterSet & | |||
) | const [inline, private] |
Definition at line 94 of file ComponentMaker.h.
{ }
void edm::eventsetup::ComponentMaker< T, TComponent >::setPostConstruction | ( | DataProxyProvider * | iProv, |
const edm::ParameterSet & | iPSet | ||
) | const [inline, private] |
Definition at line 85 of file ComponentMaker.h.
{ //The 'appendToDataLabel' parameter was added very late in the development cycle and since // the ParameterSet is not sent to the base class we must set the value after construction iProv->setAppendToDataLabel(iPSet); }