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 }
0031 #endif