CMS 3D CMS Logo

ProxyFactoryTemplate.h
Go to the documentation of this file.
1 #ifndef Framework_ProxyFactoryTemplate_h
2 #define Framework_ProxyFactoryTemplate_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : ProxyFactoryTemplate
7 //
16 //
17 // Author: Chris Jones
18 // Created: Fri Apr 8 07:59:32 CDT 2005
19 //
20 
21 // system include files
22 #include <memory>
23 #include <string>
24 
25 // user include files
28 
29 // forward declarations
30 namespace edm {
31  namespace eventsetup {
32 
33 template <class T>
35 {
36 
37  public:
38  typedef typename T::record_type record_type;
39 
41  //virtual ~ProxyFactoryTemplate();
42 
43  // ---------- const member functions ---------------------
44  virtual std::unique_ptr<DataProxy> makeProxy() const {
45  return std::make_unique<T>();
46  }
47 
48 
49  virtual DataKey makeKey(const std::string& iName) const {
50  return DataKey(DataKey::makeTypeTag< typename T::value_type>(),iName.c_str());
51  }
52 
53  // ---------- static member functions --------------------
54 
55  // ---------- member functions ---------------------------
56 
57  private:
58  ProxyFactoryTemplate(const ProxyFactoryTemplate&); // stop default
59 
60  const ProxyFactoryTemplate& operator=(const ProxyFactoryTemplate&); // stop default
61 
62  // ---------- member data --------------------------------
63 
64 };
65 
66  }
67 }
68 
69 #endif
virtual std::unique_ptr< DataProxy > makeProxy() const
HLT enums.
const ProxyFactoryTemplate & operator=(const ProxyFactoryTemplate &)
virtual DataKey makeKey(const std::string &iName) const