CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 {
36 
37  public:
38  typedef typename T::record_type record_type;
39 
40  ProxyArgumentFactoryTemplate(ArgT iArg) : arg_(iArg) {}
41  //virtual ~ProxyArgumentFactoryTemplate()
42 
43  // ---------- const member functions ---------------------
44  virtual std::auto_ptr<DataProxy> makeProxy() const {
45  return std::auto_ptr<DataProxy>(new T(arg_));
46  }
47 
48  virtual DataKey makeKey(const std::string& iName) const {
49  return DataKey(DataKey::makeTypeTag< typename T::value_type>(),iName.c_str());
50  }
51 
52  // ---------- static member functions --------------------
53 
54  // ---------- member functions ---------------------------
55 
56  private:
58 
60 
61  // ---------- member data --------------------------------
62  mutable ArgT arg_;
63 };
64 
65  }
66 }
67 #endif
virtual DataKey makeKey(const std::string &iName) const
const ProxyArgumentFactoryTemplate & operator=(const ProxyArgumentFactoryTemplate &)
virtual std::auto_ptr< DataProxy > makeProxy() const
long double T