00001 #ifndef DataFormats_Common_AssociationMapKeyVal_h 00002 #define DataFormats_Common_AssociationMapKeyVal_h 00003 /* 00004 * 00005 * helper classes for AssociationMap 00006 * 00007 * \author Luca Lista, INFN 00008 * 00009 * 00010 */ 00011 #include "FWCore/Utilities/interface/EDMException.h" 00012 00013 namespace edm { 00014 namespace helpers { 00015 template<typename K, typename V> 00016 struct KeyVal { 00017 typedef K key_type; 00018 typedef V value_type; 00019 KeyVal() : key(), val() { } 00020 KeyVal(const K & k, const V & v) : key(k), val(v) { } 00021 K key; 00022 V val; 00023 }; 00024 00025 template<typename K> 00026 struct Key { 00027 typedef K key_type; 00028 Key() { } 00029 Key(const K & k) : key(k) { } 00030 K key; 00031 }; 00032 00034 template<typename RP, typename R> 00035 void checkRef(const RP & rp, const R & r) { 00036 if (rp.id() != r.id()) { 00037 Exception::throwThis(edm::errors::InvalidReference, "invalid reference"); 00038 } 00039 } 00040 } 00041 } 00042 00043 #endif