CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_1/src/FWCore/ServiceRegistry/interface/ServiceMakerBase.h

Go to the documentation of this file.
00001 #ifndef FWCore_ServiceRegistry_ServiceMakerBase_h
00002 #define FWCore_ServiceRegistry_ServiceMakerBase_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     ServiceRegistry
00006 // Class  :     ServiceMakerBase
00007 //
00016 //
00017 // Original Author:  Chris Jones
00018 //         Created:  Mon Sep  5 13:33:00 EDT 2005
00019 //
00020 
00021 
00022 #include <typeinfo>
00023 
00024 // forward declarations
00025 namespace edm {
00026    class ParameterSet;
00027    class ActivityRegistry;
00028 
00029    namespace service {
00030       inline bool isProcessWideService(void const* /*service*/) {
00031         return false;
00032       }
00033    }
00034 
00035    namespace serviceregistry {
00036       class SaveConfiguration;
00037       class ServiceWrapperBase;
00038       class ServicesManager;
00039 
00040       class ServiceMakerBase {
00041 
00042 public:
00043          ServiceMakerBase();
00044          virtual ~ServiceMakerBase();
00045 
00046          // ---------- const member functions ---------------------
00047          virtual std::type_info const& serviceType() const = 0;
00048 
00049          virtual bool make(ParameterSet const&,
00050                            ActivityRegistry&,
00051                            ServicesManager&) const = 0;
00052 
00053          virtual bool processWideService() const = 0;
00054 
00055          virtual bool saveConfiguration() const = 0;
00056 
00057          // ---------- static member functions --------------------
00058 
00059          // ---------- member functions ---------------------------
00060 
00061 protected:
00062          bool testSaveConfiguration(SaveConfiguration const*) const {return true;}
00063          bool testSaveConfiguration(void const*) const {return false;}
00064 
00065 private:
00066          ServiceMakerBase(ServiceMakerBase const&); // stop default
00067 
00068          ServiceMakerBase const& operator=(ServiceMakerBase const&); // stop default
00069 
00070          // ---------- member data --------------------------------
00071       };
00072    }
00073 }
00074 
00075 #endif