CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/FWCore/Sources/interface/VectorInputSourceFactory.h

Go to the documentation of this file.
00001 #ifndef FWCore_Sources_VectorInputSourceFactory_h
00002 #define FWCore_Sources_VectorInputSourceFactory_h
00003 
00004 #include "FWCore/PluginManager/interface/PluginFactory.h"
00005 #include "FWCore/Sources/interface/VectorInputSource.h"
00006 
00007 #include <memory>
00008 #include <string>
00009 
00010 namespace edm {
00011   struct InputSourceDescription;
00012   class ParameterSet;
00013 
00014   typedef VectorInputSource* (ISVecFunc)(ParameterSet const&, InputSourceDescription const&);
00015   typedef edmplugin::PluginFactory<ISVecFunc> VectorInputSourcePluginFactory;
00016 
00017   class VectorInputSourceFactory {
00018   public:
00019     ~VectorInputSourceFactory();
00020 
00021     static VectorInputSourceFactory* get();
00022 
00023     std::auto_ptr<VectorInputSource>
00024       makeVectorInputSource(ParameterSet const&,
00025                             InputSourceDescription const&) const;
00026 
00027   private:
00028     VectorInputSourceFactory();
00029     static VectorInputSourceFactory singleInstance_;
00030   };
00031 }
00032 #endif