CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Static Public Member Functions | Private Types
edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef > Class Template Reference

#include <OneToOneGeneric.h>

Public Types

typedef ValRef data_type
 insert val type More...
 
typedef index index_type
 index type More...
 
typedef KeyRef key_type
 insert key type More...
 
typedef std::map< index_type,
map_assoc
map_type
 map type More...
 
typedef helpers::KeyVal
< keyrefprod_type,
valrefprod_type
ref_type
 reference set type More...
 
typedef std::vector< typename
CKey::value_type const * > 
transient_key_vector
 transient key vector More...
 
typedef std::map< typename
CKey::value_type const
*, typename CVal::value_type
const * > 
transient_map_type
 transient map type More...
 
typedef std::vector< typename
CVal::value_type const * > 
transient_val_vector
 transient val vector More...
 
typedef ValRef val_type
 values reference collection type More...
 

Static Public Member Functions

static void insert (ref_type &ref, map_type &m, key_type const &k, data_type const &v)
 insert in the map More...
 
static map_type::size_type size (map_assoc const &)
 size of data_type More...
 
static void sort (map_type &)
 sort More...
 
static transient_key_vector transientKeyVector (ref_type const &ref, map_type const &map)
 fill transient key vector More...
 
static transient_map_type transientMap (ref_type const &ref, map_type const &map)
 fill transient map More...
 
static transient_val_vector transientValVector (ref_type const &ref, map_type const &map)
 fill transient val vector More...
 
static val_type val (ref_type const &ref, map_assoc iv)
 return values collection More...
 

Private Types

typedef KeyRefProd keyrefprod_type
 reference to "key" collection More...
 
typedef index map_assoc
 internal map associated data More...
 
typedef ValRefProd valrefprod_type
 reference to "value" collection More...
 

Detailed Description

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
class edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >

Definition at line 15 of file OneToOneGeneric.h.

Member Typedef Documentation

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef ValRef edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::data_type

insert val type

Definition at line 29 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef index edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::index_type

index type

Definition at line 31 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef KeyRef edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::key_type

insert key type

Definition at line 27 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef KeyRefProd edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::keyrefprod_type
private

reference to "key" collection

Definition at line 17 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef index edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::map_assoc
private

internal map associated data

Definition at line 21 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::map<index_type, map_assoc> edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::map_type

map type

Definition at line 33 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef helpers::KeyVal<keyrefprod_type, valrefprod_type> edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::ref_type

reference set type

Definition at line 35 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::vector<typename CKey::value_type const*> edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transient_key_vector

transient key vector

Definition at line 40 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::map<typename CKey::value_type const*, typename CVal::value_type const*> edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transient_map_type

transient map type

Definition at line 38 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef std::vector<typename CVal::value_type const*> edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transient_val_vector

transient val vector

Definition at line 42 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef ValRef edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::val_type

values reference collection type

Definition at line 25 of file OneToOneGeneric.h.

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
typedef ValRefProd edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::valrefprod_type
private

reference to "value" collection

Definition at line 19 of file OneToOneGeneric.h.

Member Function Documentation

template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static void edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::insert ( ref_type ref,
map_type m,
key_type const &  k,
data_type const &  v 
)
inlinestatic

insert in the map

Definition at line 44 of file OneToOneGeneric.h.

Referenced by BeautifulSoup.PageElement::_invert().

45  {
46  if(k.isNull() || v.isNull()) {
48  "can't insert null references in AssociationMap");
49  }
50  if(ref.key.isNull()) {
51  if(k.isTransient() || v.isTransient()) {
53  "can't insert transient references in uninitialized AssociationMap");
54  }
55  //another thread might change the value of productGetter()
56  auto getter =ref.key.productGetter();
57  if(getter == nullptr) {
59  "Can't insert into AssociationMap unless it was properly initialized.\n"
60  "The most common fix for this is to add arguments to the call to the\n"
61  "AssociationMap constructor that are valid Handle's to the containers.\n"
62  "If you don't have valid handles or either template parameter to the\n"
63  "AssociationMap is a View, then see the comments in AssociationMap.h.\n"
64  "(note this was a new requirement added in the 7_5_X release series)\n");
65  }
66  ref.key = KeyRefProd(k.id(), getter);
67  ref.val = ValRefProd(v.id(), ref.val.productGetter());
68  }
69  helpers::checkRef(ref.key, k); helpers::checkRef(ref.val, v);
70  index_type ik = index_type(k.key()), iv = index_type(v.key());
71  m[ik] = iv;
72  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
index index_type
index type
void checkRef(const RP &rp, const R &r)
throw if r hasn&#39;t the same id as rp
template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static map_type::size_type edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::size ( map_assoc const &  )
inlinestatic

size of data_type

Definition at line 78 of file OneToOneGeneric.h.

78 { return 1; }
template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static void edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::sort ( map_type )
inlinestatic

sort

Definition at line 80 of file OneToOneGeneric.h.

80 { }
template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static transient_key_vector edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transientKeyVector ( ref_type const &  ref,
map_type const &  map 
)
inlinestatic

fill transient key vector

Definition at line 96 of file OneToOneGeneric.h.

96  {
98  if(!map.empty()) {
99  CKey const& ckey = *ref.key;
100  for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++i)
101  m.push_back(& ckey[i->first]);
102  }
103  return m;
104  }
int i
Definition: DBlmapReader.cc:9
std::vector< typename CKey::value_type const * > transient_key_vector
transient key vector
template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static transient_map_type edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transientMap ( ref_type const &  ref,
map_type const &  map 
)
inlinestatic

fill transient map

Definition at line 82 of file OneToOneGeneric.h.

82  {
84  if(!map.empty()) {
85  CKey const& ckey = *ref.key;
86  CVal const& cval = *ref.val;
87  for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++i) {
88  typename CKey::value_type const* k = &ckey[i->first];
89  typename CVal::value_type const* v = & cval[i->second];
90  m.insert(std::make_pair(k, v));
91  }
92  }
93  return m;
94  }
int i
Definition: DBlmapReader.cc:9
std::map< typename CKey::value_type const *, typename CVal::value_type const * > transient_map_type
transient map type
template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static transient_val_vector edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::transientValVector ( ref_type const &  ref,
map_type const &  map 
)
inlinestatic

fill transient val vector

Definition at line 106 of file OneToOneGeneric.h.

106  {
108  if(!map.empty()) {
109  CVal const& cval = *ref.val;
110  for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++i) {
111  m.push_back(& cval[i->second]);
112  }
113  }
114  return m;
115  }
int i
Definition: DBlmapReader.cc:9
std::vector< typename CVal::value_type const * > transient_val_vector
transient val vector
template<typename CKey, typename CVal, typename index = unsigned int, typename KeyRefProd = typename helper::MapRefViewTrait<CKey>::refprod_type, typename ValRefProd = typename helper::MapRefViewTrait<CVal>::refprod_type, typename KeyRef = typename helper::MapRefViewTrait<CKey>::ref_type, typename ValRef = typename helper::MapRefViewTrait<CVal>::ref_type>
static val_type edm::OneToOneGeneric< CKey, CVal, index, KeyRefProd, ValRefProd, KeyRef, ValRef >::val ( ref_type const &  ref,
map_assoc  iv 
)
inlinestatic

return values collection

Definition at line 74 of file OneToOneGeneric.h.

74  {
75  return val_type(ref.val, iv);
76  }
ValRef val_type
values reference collection type