CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions
edm::serviceregistry::ServiceMaker< T, TMaker > Class Template Reference

#include <ServiceMaker.h>

Inheritance diagram for edm::serviceregistry::ServiceMaker< T, TMaker >:
edm::serviceregistry::ServiceMakerBase

Public Member Functions

bool make (ParameterSet const &iPS, ActivityRegistry &iAR, ServicesManager &oSM) const override
 
bool processWideService () const override
 
bool saveConfiguration () const override
 
 ServiceMaker ()
 
std::type_info const & serviceType () const override
 
- Public Member Functions inherited from edm::serviceregistry::ServiceMakerBase
 ServiceMakerBase ()
 
virtual ~ServiceMakerBase ()
 

Private Member Functions

ServiceMaker const & operator= (ServiceMaker const &)=delete
 
 ServiceMaker (ServiceMaker const &)=delete
 

Additional Inherited Members

- Protected Member Functions inherited from edm::serviceregistry::ServiceMakerBase
bool testSaveConfiguration (SaveConfiguration const *) const
 
bool testSaveConfiguration (void const *) const
 

Detailed Description

template<typename T, typename TMaker = AllArgsMaker<T>>
class edm::serviceregistry::ServiceMaker< T, TMaker >

Definition at line 68 of file ServiceMaker.h.

Constructor & Destructor Documentation

◆ ServiceMaker() [1/2]

template<typename T , typename TMaker = AllArgsMaker<T>>
edm::serviceregistry::ServiceMaker< T, TMaker >::ServiceMaker ( )
inline

Definition at line 70 of file ServiceMaker.h.

70 {}

◆ ServiceMaker() [2/2]

template<typename T , typename TMaker = AllArgsMaker<T>>
edm::serviceregistry::ServiceMaker< T, TMaker >::ServiceMaker ( ServiceMaker< T, TMaker > const &  )
privatedelete

Member Function Documentation

◆ make()

template<typename T , typename TMaker = AllArgsMaker<T>>
bool edm::serviceregistry::ServiceMaker< T, TMaker >::make ( ParameterSet const &  iPS,
ActivityRegistry iAR,
ServicesManager oSM 
) const
inlineoverridevirtual

Implements edm::serviceregistry::ServiceMakerBase.

Definition at line 76 of file ServiceMaker.h.

76  {
77  TMaker maker;
78  std::unique_ptr<T> pService(maker.make(iPS, iAR));
79  auto ptr = std::make_shared<ServiceWrapper<T> >(std::move(pService));
80  return oSM.put(ptr);
81  }

References eostools::move(), and edm::serviceregistry::ServicesManager::put().

◆ operator=()

template<typename T , typename TMaker = AllArgsMaker<T>>
ServiceMaker const& edm::serviceregistry::ServiceMaker< T, TMaker >::operator= ( ServiceMaker< T, TMaker > const &  )
privatedelete

◆ processWideService()

template<typename T , typename TMaker = AllArgsMaker<T>>
bool edm::serviceregistry::ServiceMaker< T, TMaker >::processWideService ( ) const
inlineoverridevirtual

Implements edm::serviceregistry::ServiceMakerBase.

Definition at line 87 of file ServiceMaker.h.

87  {
88  return service::isProcessWideService(static_cast<typename TMaker::concrete_t const*>(nullptr));
89  }

References edm::service::isProcessWideService().

◆ saveConfiguration()

template<typename T , typename TMaker = AllArgsMaker<T>>
bool edm::serviceregistry::ServiceMaker< T, TMaker >::saveConfiguration ( ) const
inlineoverridevirtual

Implements edm::serviceregistry::ServiceMakerBase.

Definition at line 83 of file ServiceMaker.h.

83  {
84  return ServiceMakerBase::testSaveConfiguration(static_cast<typename TMaker::concrete_t const*>(nullptr));
85  }

References edm::serviceregistry::ServiceMakerBase::testSaveConfiguration().

◆ serviceType()

template<typename T , typename TMaker = AllArgsMaker<T>>
std::type_info const& edm::serviceregistry::ServiceMaker< T, TMaker >::serviceType ( ) const
inlineoverridevirtual

Implements edm::serviceregistry::ServiceMakerBase.

Definition at line 74 of file ServiceMaker.h.

74 { return typeid(T); }
edm::serviceregistry::ServiceMakerBase::testSaveConfiguration
bool testSaveConfiguration(SaveConfiguration const *) const
Definition: ServiceMakerBase.h:56
edm::service::isProcessWideService
bool isProcessWideService(TFileService const *)
Definition: TFileService.h:98
eostools.move
def move(src, dest)
Definition: eostools.py:511
T
long double T
Definition: Basic3DVectorLD.h:48