CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions
edm::eventsetup::ComponentMaker< T, TComponent > Class Template Reference

#include <ComponentMaker.h>

Inheritance diagram for edm::eventsetup::ComponentMaker< T, TComponent >:
edm::eventsetup::ComponentMakerBase< T > edm::eventsetup::ComponentMakerBaseHelper

Public Types

typedef T::base_type base_type
 
- Public Types inherited from edm::eventsetup::ComponentMakerBase< T >
typedef T::base_type base_type
 

Public Member Functions

virtual boost::shared_ptr
< base_type
addTo (EventSetupsController &esController, EventSetupProvider &iProvider, ParameterSet const &iConfiguration) const
 
 ComponentMaker ()
 
- Public Member Functions inherited from edm::eventsetup::ComponentMakerBaseHelper
virtual ~ComponentMakerBaseHelper ()
 

Private Member Functions

 ComponentMaker (const ComponentMaker &)
 
const ComponentMakeroperator= (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 (DataProxyProvider *iProv, const edm::ParameterSet &iPSet) const
 
void setPostConstruction (void *, const edm::ParameterSet &) const
 

Additional Inherited Members

- Protected Member Functions inherited from edm::eventsetup::ComponentMakerBaseHelper
ComponentDescription createComponentDescription (ParameterSet const &iConfiguration) const
 
void logInfoWhenSharing (ParameterSet const &iConfiguration) const
 

Detailed Description

template<class T, class TComponent>
class edm::eventsetup::ComponentMaker< T, TComponent >

Definition at line 57 of file ComponentMaker.h.

Member Typedef Documentation

template<class T, class TComponent>
typedef T::base_type edm::eventsetup::ComponentMaker< T, TComponent >::base_type

Definition at line 63 of file ComponentMaker.h.

Constructor & Destructor Documentation

template<class T, class TComponent>
edm::eventsetup::ComponentMaker< T, TComponent >::ComponentMaker ( )
inline

Definition at line 61 of file ComponentMaker.h.

61 {}
template<class T, class TComponent>
edm::eventsetup::ComponentMaker< T, TComponent >::ComponentMaker ( const ComponentMaker< T, TComponent > &  )
private

Member Function Documentation

template<class T , class TComponent >
boost::shared_ptr< typename ComponentMaker< T, TComponent >::base_type > ComponentMaker::addTo ( EventSetupsController esController,
EventSetupProvider iProvider,
ParameterSet const &  iConfiguration 
) const
virtual

Implements edm::eventsetup::ComponentMakerBase< T >.

Definition at line 101 of file ComponentMaker.h.

References idDealer::description.

104 {
105  boost::shared_ptr<typename T::base_type> const* alreadyMadeComponent = T::getAlreadyMadeComponent(esController, iConfiguration);
106 
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);
111  return component;
112  }
113 
114  boost::shared_ptr<TComponent> component(new TComponent(iConfiguration));
115  ComponentDescription description =
116  this->createComponentDescription(iConfiguration);
117 
118  this->setDescription(component.get(),description);
119  this->setDescriptionForFinder(component.get(),description);
120  this->setPostConstruction(component.get(),iConfiguration);
121  T::addTo(iProvider, component);
122  T::putComponent(esController, iConfiguration, component);
123 
124  return component;
125 }
void setPostConstruction(DataProxyProvider *iProv, const edm::ParameterSet &iPSet) const
tuple description
Definition: idDealer.py:66
void logInfoWhenSharing(ParameterSet const &iConfiguration) const
void setDescription(DataProxyProvider *iProv, const ComponentDescription &iDesc) const
void setDescriptionForFinder(EventSetupRecordIntervalFinder *iFinder, const ComponentDescription &iDesc) const
ComponentDescription createComponentDescription(ParameterSet const &iConfiguration) const
template<class T, class TComponent>
const ComponentMaker& edm::eventsetup::ComponentMaker< T, TComponent >::operator= ( const ComponentMaker< T, TComponent > &  )
private
template<class T, class TComponent>
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescription ( DataProxyProvider iProv,
const ComponentDescription iDesc 
) const
inlineprivate

Definition at line 78 of file ComponentMaker.h.

78  {
79  iProv->setDescription(iDesc);
80  }
template<class T, class TComponent>
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescription ( void *  ,
const ComponentDescription  
) const
inlineprivate

Definition at line 89 of file ComponentMaker.h.

89  {
90  }
template<class T, class TComponent>
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescriptionForFinder ( EventSetupRecordIntervalFinder iFinder,
const ComponentDescription iDesc 
) const
inlineprivate

Definition at line 81 of file ComponentMaker.h.

81  {
82  iFinder->setDescriptionForFinder(iDesc);
83  }
template<class T, class TComponent>
void edm::eventsetup::ComponentMaker< T, TComponent >::setDescriptionForFinder ( void *  ,
const ComponentDescription  
) const
inlineprivate

Definition at line 91 of file ComponentMaker.h.

91  {
92  }
template<class T, class TComponent>
void edm::eventsetup::ComponentMaker< T, TComponent >::setPostConstruction ( DataProxyProvider iProv,
const edm::ParameterSet iPSet 
) const
inlineprivate

Definition at line 84 of file ComponentMaker.h.

84  {
85  //The 'appendToDataLabel' parameter was added very late in the development cycle and since
86  // the ParameterSet is not sent to the base class we must set the value after construction
87  iProv->setAppendToDataLabel(iPSet);
88  }
template<class T, class TComponent>
void edm::eventsetup::ComponentMaker< T, TComponent >::setPostConstruction ( void *  ,
const edm::ParameterSet  
) const
inlineprivate

Definition at line 93 of file ComponentMaker.h.

93  {
94  }