ElectronicsCalibService.h
Go to the documentation of this file.
1 /**
2  * @file ElectronicsCalibService.h
3  * @brief Interface for experiment-specific service for pmt gain info
4  * @author Brandon Eberly (eberly@fnal.gov)
5  * @date August 30, 2015
6  */
7 
8 #ifndef ELECTRONICSCALIBSERVICE_H
9 #define ELECTRONICSCALIBSERVICE_H
10 
11 // Framework libraries
13 
14 //forward declarations
15 namespace lariov {
16  class ElectronicsCalibProvider;
17 }
18 
19 namespace lariov {
20 
21  /**
22  \class ElectronicsCalibService
23  This service provides only a simple interface to a provider class
24  */
26 
27  public:
29 
30  /// Destructor
31  virtual ~ElectronicsCalibService() = default;
32 
33  //retrieve provider
35  { return DoGetProvider(); }
36 
38  { return DoGetProviderPtr(); }
39 
40  private:
41 
42  /// Returns a reference to the service provider
43  virtual ElectronicsCalibProvider const& DoGetProvider() const = 0;
44 
45  virtual ElectronicsCalibProvider const* DoGetProviderPtr() const = 0;
46 
47 
48 
49  }; // class ElectronicsCalibService
50 } // namespace lariov
51 
52 
54 
55 #endif
ElectronicsCalibProvider const & GetProvider() const
virtual ~ElectronicsCalibService()=default
Destructor.
virtual ElectronicsCalibProvider const & DoGetProvider() const =0
Returns a reference to the service provider.
Filters for channels, events, etc.
ElectronicsCalibProvider const * GetProviderPtr() const
virtual ElectronicsCalibProvider const * DoGetProviderPtr() const =0
#define DECLARE_ART_SERVICE_INTERFACE(svc, scope)