Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:10

0001 #ifndef FWCore_Sources_VectorInputSourceFactory_h
0002 #define FWCore_Sources_VectorInputSourceFactory_h
0003 
0004 #include "FWCore/PluginManager/interface/PluginFactory.h"
0005 #include "FWCore/Sources/interface/VectorInputSource.h"
0006 
0007 #include <memory>
0008 #include <string>
0009 
0010 namespace edm {
0011   struct VectorInputSourceDescription;
0012   class ParameterSet;
0013 
0014   typedef VectorInputSource*(ISVecFunc)(ParameterSet const&, VectorInputSourceDescription const&);
0015   typedef edmplugin::PluginFactory<ISVecFunc> VectorInputSourcePluginFactory;
0016 
0017   class VectorInputSourceFactory {
0018   public:
0019     ~VectorInputSourceFactory();
0020 
0021     static VectorInputSourceFactory const* get();
0022 
0023     std::unique_ptr<VectorInputSource> makeVectorInputSource(ParameterSet const&,
0024                                                              VectorInputSourceDescription const&) const;
0025 
0026   private:
0027     VectorInputSourceFactory();
0028     static VectorInputSourceFactory const singleInstance_;
0029   };
0030 }  // namespace edm
0031 #endif