00001 #ifndef Framework_HCMethods_h
00002 #define Framework_HCMethods_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "boost/type_traits/remove_const.hpp"
00020
00021
00022
00023 namespace edm {
00024 namespace eventsetup {
00025 namespace heterocontainer {
00026 template<class Type, class Key, class IdTag>
00027 Key makeKey(const IdTag&);
00028
00029 template<class Type, class Key>
00030 Key makeKey();
00031
00032
00033
00034
00035
00036
00037 template<class Key, class ItemType> struct type_from_itemtype {
00038 typedef typename boost::remove_const<ItemType>::type Type;
00039 };
00040
00041 template<class Key, class ItemType, class Storage, class IdTag>
00042 bool insert(Storage&, ItemType*, const IdTag&);
00043
00044 template<class Key, class ItemType, class Storage>
00045 bool insert(Storage&, ItemType*);
00046
00047 template<class Key, class ItemType, class Storage, class IdTag>
00048 ItemType* find(const Storage&, const IdTag&);
00049
00050 template<class Key,class ItemType, class Storage>
00051 ItemType* find(const Storage&);
00052 }
00053 }
00054 }
00055 #endif