1 #ifndef FWCore_ServiceRegistry_ServiceMaker_h
2 #define FWCore_ServiceRegistry_ServiceMaker_h
38 namespace serviceregistry {
40 template<
class T,
class TConcrete >
46 template<
class T,
class TConcrete = T>
52 return std::auto_ptr<T>(
new TConcrete(iPS, iAR));
56 template<
class T,
class TConcrete = T>
61 return std::auto_ptr<T>(
new TConcrete(iPS));
65 template<
class T,
class TConcrete = T>
70 return std::auto_ptr<T>(
new TConcrete());
75 template<
class T,
class TMaker = AllArgsMaker<T> >
84 virtual const std::type_info&
serviceType()
const {
return typeid(T); }
91 std::auto_ptr<T> pService(maker.make(iPS, iAR));
117 #define DEFINE_FWK_SERVICE(type) \
118 DEFINE_EDM_PLUGIN (edm::serviceregistry::ServicePluginFactory,edm::serviceregistry::ServiceMaker<type>,#type); \
119 DEFINE_DESC_FILLER_FOR_SERVICES(type, type)
121 #define DEFINE_FWK_SERVICE_MAKER(concrete,maker) \
122 typedef edm::serviceregistry::ServiceMaker<maker::interface_t,maker> concrete ## _ ## _t; \
123 DEFINE_EDM_PLUGIN (edm::serviceregistry::ServicePluginFactory, concrete ## _ ## _t ,#concrete); \
124 typedef maker::concrete_t concrete ## _ ## _ ## _t; \
125 DEFINE_DESC_FILLER_FOR_SERVICES(concrete, concrete ## _ ## _ ## _t)
std::auto_ptr< T > make(const edm::ParameterSet &iPS, edm::ActivityRegistry &) const
const ServiceMaker & operator=(const ServiceMaker &)
virtual bool saveConfiguration() const
std::auto_ptr< T > make(const edm::ParameterSet &, edm::ActivityRegistry &) const
virtual const std::type_info & serviceType() const
bool testSaveConfiguration(const SaveConfiguration *) const
edm::serviceregistry::AllArgsMaker< DTDataMonitorInterface, DTDataIntegrityTask > maker
bool put(boost::shared_ptr< ServiceWrapper< T > > iPtr)
returns false if put fails because a service of this type already exists
std::auto_ptr< T > make(const edm::ParameterSet &iPS, edm::ActivityRegistry &iAR) const
virtual bool make(const edm::ParameterSet &iPS, edm::ActivityRegistry &iAR, ServicesManager &oSM) const