00001 #ifndef FWCore_Framework_InputSourceFactory_h 00002 #define FWCOre_Framework_InputSourceFactory_h 00003 00004 #include "FWCore/PluginManager/interface/PluginFactory.h" 00005 #include "FWCore/Framework/interface/InputSource.h" 00006 00007 #include <string> 00008 #include <memory> 00009 00010 namespace edm { 00011 00012 typedef InputSource* (ISFunc)(ParameterSet const&, InputSourceDescription const&); 00013 00014 typedef edmplugin::PluginFactory<ISFunc> InputSourcePluginFactory; 00015 00016 class InputSourceFactory { 00017 public: 00018 ~InputSourceFactory(); 00019 00020 static InputSourceFactory* get(); 00021 00022 std::auto_ptr<InputSource> 00023 makeInputSource(ParameterSet const&, 00024 InputSourceDescription const&) const; 00025 00026 00027 private: 00028 InputSourceFactory(); 00029 static InputSourceFactory singleInstance_; 00030 }; 00031 00032 } 00033 #endif