CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
InputSourceFactory.cc
Go to the documentation of this file.
1 
6 
7 #include <iostream>
8 
10 namespace edm {
11 
12 
14  {
15  }
16 
18  {
19  }
20 
22 
24  {
25  // will not work with plugin factories
26  //static InputSourceFactory f;
27  //return &f;
28 
29  return &singleInstance_;
30  }
31 
32  std::auto_ptr<InputSource>
34  InputSourceDescription const& desc) const
35 
36  {
37  std::string modtype = conf.getParameter<std::string>("@module_type");
38  FDEBUG(1) << "InputSourceFactory: module_type = " << modtype << std::endl;
39  std::auto_ptr<InputSource> wm;
40  wm = std::auto_ptr<InputSource>(InputSourcePluginFactory::get()->create(modtype,conf,desc));
41 
42  if(wm.get()==0) {
43  throw edm::Exception(errors::Configuration,"NoSourceModule")
44  << "InputSource Factory:\n"
45  << "Cannot find source type from ParameterSet: "
46  << modtype << "\n"
47  << "Perhaps your source type is misspelled or is not an EDM Plugin?\n"
48  << "Try running EdmPluginDump to obtain a list of available Plugins.";
49  }
50 
51  wm->registerProducts();
52 
53  FDEBUG(1) << "InputSourceFactory: created input source "
54  << modtype
55  << std::endl;
56 
57  return wm;
58  }
59 
60 }
T getParameter(std::string const &) const
#define FDEBUG(lev)
Definition: DebugMacros.h:18
static InputSourceFactory const singleInstance_
static InputSourceFactory const * get()
#define EDM_REGISTER_PLUGINFACTORY(_factory_, _category_)
Definition: PluginFactory.h:90
std::auto_ptr< InputSource > makeInputSource(ParameterSet const &, InputSourceDescription const &) const
T get(const Candidate &c)
Definition: component.h:55