CMS 3D CMS Logo

ProxyArgumentFactoryTemplate.h
Go to the documentation of this file.
1 #ifndef Framework_ProxyArgumentFactoryTemplate_h
2 #define Framework_ProxyArgumentFactoryTemplate_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : ProxyArgumentFactoryTemplate
7 //
16 //
17 // Author: Chris Jones
18 // Created: Mon Apr 11 16:20:52 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, class ArgT>
35  public:
36  typedef typename T::record_type record_type;
37 
38  ProxyArgumentFactoryTemplate(ArgT iArg) : arg_(iArg) {}
39  //virtual ~ProxyArgumentFactoryTemplate()
40 
41  // ---------- const member functions ---------------------
42  std::unique_ptr<DataProxy> makeProxy() const override { return std::make_unique<T>(arg_); }
43 
44  DataKey makeKey(const std::string& iName) const override {
45  return DataKey(DataKey::makeTypeTag<typename T::value_type>(), iName.c_str());
46  }
47 
48  // ---------- static member functions --------------------
49 
50  // ---------- member functions ---------------------------
51 
52  private:
53  ProxyArgumentFactoryTemplate(const ProxyArgumentFactoryTemplate&) = delete; // stop default
54 
55  const ProxyArgumentFactoryTemplate& operator=(const ProxyArgumentFactoryTemplate&) = delete; // stop default
56 
57  // ---------- member data --------------------------------
58  mutable ArgT arg_;
59  };
60 
61  } // namespace eventsetup
62 } // namespace edm
63 #endif
DataKey makeKey(const std::string &iName) const override
const ProxyArgumentFactoryTemplate & operator=(const ProxyArgumentFactoryTemplate &)=delete
std::unique_ptr< DataProxy > makeProxy() const override
HLT enums.