VectorInputSourceFactory

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#ifndef FWCore_Sources_VectorInputSourceFactory_h
#define FWCore_Sources_VectorInputSourceFactory_h

#include "FWCore/PluginManager/interface/PluginFactory.h"
#include "FWCore/Sources/interface/VectorInputSource.h"

#include <memory>
#include <string>

namespace edm {
  struct VectorInputSourceDescription;
  class ParameterSet;

  typedef VectorInputSource*(ISVecFunc)(ParameterSet const&, VectorInputSourceDescription const&);
  typedef edmplugin::PluginFactory<ISVecFunc> VectorInputSourcePluginFactory;

  class VectorInputSourceFactory {
  public:
    ~VectorInputSourceFactory();

    static VectorInputSourceFactory const* get();

    std::unique_ptr<VectorInputSource> makeVectorInputSource(ParameterSet const&,
                                                             VectorInputSourceDescription const&) const;

  private:
    VectorInputSourceFactory();
    static VectorInputSourceFactory const singleInstance_;
  };
}  // namespace edm
#endif