File indexing completed on 2025-06-17 01:30:25
0001
0002 #ifndef FWCore_ServiceRegistry_ServiceMakerBase_h
0003 #define FWCore_ServiceRegistry_ServiceMakerBase_h
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include <typeinfo>
0022
0023
0024 namespace edm {
0025 class ParameterSet;
0026 class ActivityRegistry;
0027
0028 namespace serviceregistry {
0029 class SaveConfiguration;
0030 class ServiceWrapperBase;
0031 class ServicesManager;
0032
0033 class ServiceMakerBase {
0034 public:
0035 ServiceMakerBase();
0036 ServiceMakerBase(ServiceMakerBase const&) = delete;
0037 ServiceMakerBase const& operator=(ServiceMakerBase const&) = delete;
0038 virtual ~ServiceMakerBase();
0039
0040
0041 virtual std::type_info const& serviceType() const = 0;
0042
0043 virtual bool make(ParameterSet const&, ActivityRegistry&, ServicesManager&) const = 0;
0044
0045 virtual bool saveConfiguration() const = 0;
0046
0047
0048
0049
0050
0051 protected:
0052 bool testSaveConfiguration(SaveConfiguration const*) const { return true; }
0053 bool testSaveConfiguration(void const*) const { return false; }
0054
0055 private:
0056
0057 };
0058 }
0059 }
0060
0061 #endif