Classes | Namespaces | Typedefs | Functions
ServiceUtil.h File Reference
#include "larcorealg/CoreUtils/UncopiableAndUnmovableClass.h"
#include "larcorealg/CoreUtils/ProviderPack.h"
#include "art/Framework/Services/Registry/ServiceHandle.h"
#include "canvas/Utilities/Exception.h"
#include "cetlib_except/demangle.h"
#include <type_traits>
#include <typeinfo>

Go to the source code of this file.

Classes

struct  lar::details::ServiceRequirementsChecker< SERVICE >
 
struct  lar::details::ProviderPackExtractor< Services >
 
struct  lar::details::ServiceProviderRequirementsChecker< PROVIDER >
 Compiles only if PROVIDER class satisfied service provider requirements. More...
 
struct  lar::details::ServiceRequirementsChecker< SERVICE >
 
struct  lar::details::ProviderPackExtractor< First, Others... >
 
struct  lar::details::ProviderPackExtractor< Service >
 

Namespaces

 lar
 LArSoft-specific namespace.
 
 lar::details
 Namespace hiding implementation details.
 

Typedefs

template<typename... Services>
using lar::providersFrom_t = lar::ProviderPack< typename Services::provider_type... >
 Type of a provider pack with a provider from each of the Services. More...
 

Functions

template<typename T >
T::provider_type const * lar::providerFrom ()
 Returns a constant pointer to the provider of specified service. More...
 
template<typename... Services>
auto lar::providersFrom ()
 Returns a lar::ProviderPack with providers from all services. More...