ElectronLifetimeService.h
Go to the documentation of this file.
1 #ifndef ELECTRONLIFETIMESERVICE_H
2 #define ELECTRONLIFETIMESERVICE_H
3 
6 
7 //forward declarations
8 namespace lariov {
9  class ElectronLifetimeProvider;
10 }
11 
12 namespace lariov {
13 
15 
16  public:
18 
19  virtual ~ElectronLifetimeService() = default;
20 
21  //retrieve provider
23  return this->DoGetProvider();
24  }
25 
27  return &DoGetProvider();
28  }
29 
30  private:
31 
32  virtual const ElectronLifetimeProvider& DoGetProvider() const = 0;
33  };
34 }//end namespace lariov
35 
37 
38 #endif
virtual ~ElectronLifetimeService()=default
const ElectronLifetimeProvider & GetProvider() const
Filters for channels, events, etc.
virtual const ElectronLifetimeProvider & DoGetProvider() const =0
ElectronLifetimeProvider const * provider() const
#define DECLARE_ART_SERVICE_INTERFACE(svc, scope)