CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HCMethods.h
Go to the documentation of this file.
1 #ifndef Framework_HCMethods_h
2 #define Framework_HCMethods_h
3 // -*- C++ -*-
4 //
5 // Package: HeteroContainer
6 // Module: HCMethods
7 //
8 // Description: Templated methods to be used to 'construct' a
9 // heterogenous container
10 //
11 // Usage:
12 // <usage>
13 //
14 // Author: Chris D. Jones
15 // Created: Sun Mar 27 15:58:05 EDT 2005
16 //
17 
18 // system include files
19 #include "boost/type_traits/remove_const.hpp"
20 // user include files
21 
22 // forward declarations
23 namespace edm {
24  namespace eventsetup {
25  namespace heterocontainer {
26  template<class Type, class Key, class IdTag>
27  Key makeKey(const IdTag&);
28 
29  template<class Type, class Key>
30  Key makeKey();
31 
32  //NOTE: the following functions use this struct to determine
33  // how to find the 'Type' (what is returned from the Storage)
34  // when given only an ItemType (what is stored in Storage).
35  // This allows the Storage to be composed of proxies instead of
36  // the 'Type' themselves
37  template<class Key, class ItemType> struct type_from_itemtype {
39  };
40 
41  template<class Key, class ItemType, class Storage, class IdTag>
42  bool insert(Storage&, ItemType*, const IdTag&);
43 
44  template<class Key, class ItemType, class Storage>
45  bool insert(Storage&, ItemType*);
46 
47  template<class Key, class ItemType, class Storage, class IdTag>
48  ItemType* find(const Storage&, const IdTag&);
49 
50  template<class Key,class ItemType, class Storage>
51  ItemType* find(const Storage&);
52  }
53  }
54 }
55 #endif
type
Definition: HCALResponse.h:22
Definition: Storage.h:8
ItemType * find(const Storage &, const IdTag &)
boost::remove_const< ItemType >::type Type
Definition: HCMethods.h:38
bool insert(Storage &, ItemType *, const IdTag &)