LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ProducingService.h
Go to the documentation of this file.
1 #ifndef art_Framework_Core_ProducingService_h
2 #define art_Framework_Core_ProducingService_h
3 // vim: set sw=2 expandtab :
4 
11 
12 namespace art {
13 
14  class ModuleDescription;
15  class ProducingServiceSignals;
16 
18  public:
19  static constexpr bool service_handle_allowed{false};
20 
22  virtual ~ProducingService() noexcept;
23 
28 
29  // The signal handlers to register.
33 
34  private:
35  // Derived classes can implement these.
36  virtual void postReadRun(Run&);
37  virtual void postReadSubRun(SubRun&);
38  virtual void postReadEvent(Event&);
39 
40  // The fake module description/context created by the service mgr
41  // which contains the service_type as the module label. We must
42  // copy it because it has no permanent existence.
44  };
45 
46 } // namespace art
47 
48 #define DEFINE_ART_PRODUCING_SERVICE(klass) \
49  DECLARE_ART_SERVICE(klass, SHARED) \
50  DEFINE_ART_SERVICE(klass)
51 
52 #endif /* art_Framework_Core_ProducingService_h */
53 
54 // Local Variables:
55 // mode: c++
56 // End:
virtual void postReadEvent(Event &)
void doPostReadSubRun(SubRunPrincipal &)
virtual ~ProducingService() noexcept
void doPostReadEvent(EventPrincipal &)
void produces(std::string const &instanceName={}, Persistable const persistable=Persistable::Yes)
static constexpr bool service_handle_allowed
Definition: Run.h:37
void registerProducts(ProductDescriptions &productsToRegister, ModuleDescription const &md)
void setModuleDescription(ModuleDescription const &)
virtual void postReadRun(Run &)
Definition: MVAAlg.h:12
void registerCallbacks(ProducingServiceSignals &)
void doPostReadRun(RunPrincipal &)
virtual void postReadSubRun(SubRun &)
static ModuleContext invalid()
Definition: ModuleContext.h:22