LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
art::ServiceToken Class Reference

#include "ServiceToken.h"

Public Member Functions

template<typename T , typename = std::enable_if_t<detail::ServiceHelper<T>::scope_val != ServiceScope::PER_SCHEDULE>>
void add (std::unique_ptr< T > &&serv)
 
template<typename T , typename = std::enable_if_t<detail::ServiceHelper<T>::scope_val == ServiceScope::PER_SCHEDULE>>
void add (std::vector< std::unique_ptr< T >> &&services)
 
void forceCreation ()
 
void registerProducts (MasterProductRegistry &mpr, ProductDescriptions &productsToProduce, ProducingServiceSignals &signals, ProcessConfiguration const &pc)
 
void getParameterSets (ServicesManager::ParameterSets &out) const
 

Static Public Member Functions

static auto createInvalid ()
 

Private Member Functions

 ServiceToken (std::shared_ptr< ServicesManager > iManager)
 

Private Attributes

std::shared_ptr< ServicesManagermanager_
 

Friends

class ServiceRegistry
 
class ServicesManager
 

Detailed Description

Definition at line 31 of file ServiceToken.h.

Constructor & Destructor Documentation

art::ServiceToken::ServiceToken ( std::shared_ptr< ServicesManager iManager)
inlineexplicitprivate

Definition at line 82 of file ServiceToken.h.

83  : manager_{iManager}
84  {}
std::shared_ptr< ServicesManager > manager_
Definition: ServiceToken.h:86

Member Function Documentation

template<typename T , typename = std::enable_if_t<detail::ServiceHelper<T>::scope_val != ServiceScope::PER_SCHEDULE>>
void art::ServiceToken::add ( std::unique_ptr< T > &&  serv)
inline

Definition at line 46 of file ServiceToken.h.

References manager_, and art::PER_SCHEDULE.

Referenced by art::ServiceDirector::addSystemService().

47  {
48  manager_->put(std::move(serv));
49  }
std::shared_ptr< ServicesManager > manager_
Definition: ServiceToken.h:86
template<typename T , typename = std::enable_if_t<detail::ServiceHelper<T>::scope_val == ServiceScope::PER_SCHEDULE>>
void art::ServiceToken::add ( std::vector< std::unique_ptr< T >> &&  services)
inline

Definition at line 55 of file ServiceToken.h.

References manager_.

56  {
57  manager_->put(std::move(services));
58  }
std::shared_ptr< ServicesManager > manager_
Definition: ServiceToken.h:86
static auto art::ServiceToken::createInvalid ( )
inlinestatic

Definition at line 37 of file ServiceToken.h.

References art::PER_SCHEDULE.

38  {
39  return ServiceToken{nullptr};
40  }
ServiceToken(std::shared_ptr< ServicesManager > iManager)
Definition: ServiceToken.h:82
void art::ServiceToken::forceCreation ( )
inline

Definition at line 61 of file ServiceToken.h.

References manager_.

Referenced by art::EventProcessor::EventProcessor().

62  {
63  manager_->forceCreation();
64  }
std::shared_ptr< ServicesManager > manager_
Definition: ServiceToken.h:86
void art::ServiceToken::getParameterSets ( ServicesManager::ParameterSets out) const
inline

Definition at line 76 of file ServiceToken.h.

References manager_.

77  {
78  manager_->getParameterSets(out);
79  }
std::shared_ptr< ServicesManager > manager_
Definition: ServiceToken.h:86
void art::ServiceToken::registerProducts ( MasterProductRegistry mpr,
ProductDescriptions productsToProduce,
ProducingServiceSignals signals,
ProcessConfiguration const &  pc 
)
inline

Definition at line 67 of file ServiceToken.h.

References manager_.

Referenced by art::EventProcessor::EventProcessor().

71  {
72  manager_->registerProducts(mpr, productsToProduce, signals, pc);
73  }
std::shared_ptr< ServicesManager > manager_
Definition: ServiceToken.h:86

Friends And Related Function Documentation

friend class ServiceRegistry
friend

Definition at line 32 of file ServiceToken.h.

friend class ServicesManager
friend

Definition at line 33 of file ServiceToken.h.

Member Data Documentation

std::shared_ptr<ServicesManager> art::ServiceToken::manager_
private

The documentation for this class was generated from the following file: