CMS 3D CMS Logo

Classes | Functions
edm::eventsetup::heterocontainer Namespace Reference

Classes

class  HCTypeTag
 
struct  type_from_itemtype
 

Functions

template<class Key , class ItemType , class Storage , class IdTag >
ItemType * find (const Storage &iStorage, const IdTag &iIdTag)
 
template<class Key , class ItemType , class Storage >
ItemType * find (const Storage &iStorage)
 
template<class Key , class ItemType , class Storage , class IdTag >
bool insert (Storage &iStorage, ItemType *iItem, const IdTag &iIdTag)
 
template<class Key , class ItemType , class Storage >
bool insert (Storage &iStorage, ItemType *iItem)
 
template<class Type , class Key , class IdTag >
Key makeKey (const IdTag &iIdTag)
 
template<class Type , class Key >
Key makeKey ()
 

Function Documentation

◆ find() [1/2]

template<class Key , class ItemType , class Storage , class IdTag >
ItemType* edm::eventsetup::heterocontainer::find ( const Storage &  iStorage,
const IdTag &  iIdTag 
)
inline

Definition at line 60 of file HCMethods.h.

References makeKey().

60  {
61  //The cast should be safe since the Key tells us the type
62  return static_cast<ItemType*>(
63  iStorage.find(makeKey<typename type_from_itemtype<Key, ItemType>::Type, Key>(iIdTag)));
64  }

◆ find() [2/2]

template<class Key , class ItemType , class Storage >
ItemType* edm::eventsetup::heterocontainer::find ( const Storage &  iStorage)
inline

Definition at line 67 of file HCMethods.h.

References makeKey().

67  {
68  //The cast should be safe since the Key tells us the type
69  return static_cast<ItemType*>(iStorage.find(makeKey<typename type_from_itemtype<Key, ItemType>::Type, Key>()));
70  }

◆ insert() [1/2]

template<class Key , class ItemType , class Storage , class IdTag >
bool edm::eventsetup::heterocontainer::insert ( Storage &  iStorage,
ItemType *  iItem,
const IdTag &  iIdTag 
)
inline

◆ insert() [2/2]

template<class Key , class ItemType , class Storage >
bool edm::eventsetup::heterocontainer::insert ( Storage &  iStorage,
ItemType *  iItem 
)
inline

Definition at line 55 of file HCMethods.h.

55  {
56  return iStorage.insert(makeKey<ItemType, Key>(), iItem);
57  }

◆ makeKey() [1/2]

template<class Type , class Key , class IdTag >
Key edm::eventsetup::heterocontainer::makeKey ( const IdTag &  iIdTag)
inline

Definition at line 28 of file HCMethods.h.

Referenced by find(), edm::EventSetup::get(), insert(), and edm::EventSetup::tryToGet().

28  {
29  HCTypeTag typeTag = HCTypeTag::make<Type>();
30  return Key(typeTag, iIdTag);
31  }

◆ makeKey() [2/2]

template<class Type , class Key >
Key edm::eventsetup::heterocontainer::makeKey ( )
inline

Definition at line 34 of file HCMethods.h.

34  {
35  HCTypeTag typeTag = HCTypeTag::make<Type>();
36  return Key(typeTag);
37  }