1 #ifndef DataFormats_Common_OneToOneGeneric_h
2 #define DataFormats_Common_OneToOneGeneric_h
10 template<
typename CKey,
typename CVal,
typename index =
unsigned int,
11 typename KeyRefProd =
typename helper::MapRefViewTrait<CKey>::refprod_type,
12 typename ValRefProd =
typename helper::MapRefViewTrait<CVal>::refprod_type,
13 typename KeyRef =
typename helper::MapRefViewTrait<CKey>::ref_type,
14 typename ValRef =
typename helper::MapRefViewTrait<CVal>::ref_type>
33 typedef std::map<index_type, map_assoc>
map_type;
46 if(k.isNull() || v.isNull()) {
48 "can't insert null references in AssociationMap");
50 if(ref.
key.isNull()) {
69 CKey
const& ckey = *ref.
key;
70 CVal
const& cval = *ref.
val;
71 for(
typename map_type::const_iterator
i = map.begin();
i != map.end(); ++
i) {
74 m.insert(std::make_pair(k, v));
81 CKey
const& ckey = *ref.
key;
82 for(
typename map_type::const_iterator
i = map.begin();
i != map.end(); ++
i)
83 m.push_back(& ckey[
i->first]);
89 CVal
const& cval = *ref.
val;
90 for(
typename map_type::const_iterator
i = map.begin();
i != map.end(); ++
i) {
91 m.push_back(& cval[
i->second]);
KeyRefProd keyrefprod_type
reference to "key" collection
KeyRef key_type
insert key type
static transient_map_type transientMap(ref_type const &ref, map_type const &map)
fill transient map
index map_assoc
internal map associated data
std::map< typename CKey::value_type const *, typename CVal::value_type const * > transient_map_type
transient map type
ValRefProd valrefprod_type
reference to "value" collection
ValRef val_type
values reference collection type
std::vector< typename CVal::value_type const * > transient_val_vector
transient val vector
std::vector< typename CKey::value_type const * > transient_key_vector
transient key vector
static void sort(map_type &)
sort
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
ValRef data_type
insert val type
Container::value_type value_type
index index_type
index type
static transient_key_vector transientKeyVector(ref_type const &ref, map_type const &map)
fill transient key vector
static val_type val(ref_type const &ref, map_assoc iv)
return values collection
static void insert(ref_type &ref, map_type &m, key_type const &k, data_type const &v)
insert in the map
helpers::KeyVal< keyrefprod_type, valrefprod_type > ref_type
reference set type
static transient_val_vector transientValVector(ref_type const &ref, map_type const &map)
fill transient val vector
static map_type::size_type size(map_assoc const &)
size of data_type
void checkRef(const RP &rp, const R &r)
throw if r hasn't the same id as rp
std::map< index_type, map_assoc > map_type
map type