CMS 3D CMS Logo

Public Types | Static Public Member Functions | Private Types

edm::OneToValue< CKey, Val, index > Class Template Reference

#include <OneToValue.h>

List of all members.

Public Types

typedef Val data_type
 insert val type
typedef index index_type
 index type
typedef edm::Ref< CKey > key_type
 insert key type
typedef std::map< index_type,
map_assoc
map_type
 map type
typedef helpers::Key< KeyRefProdref_type
 reference set type
typedef std::vector< const
typename CKey::value_type * > 
transient_key_vector
 transient key vector
typedef std::map< const
typename CKey::value_type
*, Val > 
transient_map_type
 transient map type
typedef std::vector< Val > transient_val_vector
 transient val vector
typedef Val val_type
 values reference collection type

Static Public Member Functions

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

Private Types

typedef edm::RefProd< CKey > KeyRefProd
 reference to "key" collection
typedef Val map_assoc
 internal map associated data

Detailed Description

template<typename CKey, typename Val, typename index = unsigned int>
class edm::OneToValue< CKey, Val, index >

Definition at line 10 of file OneToValue.h.


Member Typedef Documentation

template<typename CKey, typename Val, typename index = unsigned int>
typedef Val edm::OneToValue< CKey, Val, index >::data_type

insert val type

Definition at line 21 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef index edm::OneToValue< CKey, Val, index >::index_type

index type

Definition at line 23 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef edm::Ref<CKey> edm::OneToValue< CKey, Val, index >::key_type

insert key type

Definition at line 19 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef edm::RefProd<CKey> edm::OneToValue< CKey, Val, index >::KeyRefProd [private]

reference to "key" collection

Definition at line 12 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef Val edm::OneToValue< CKey, Val, index >::map_assoc [private]

internal map associated data

Definition at line 14 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef std::map<index_type, map_assoc> edm::OneToValue< CKey, Val, index >::map_type

map type

Definition at line 25 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef helpers::Key<KeyRefProd> edm::OneToValue< CKey, Val, index >::ref_type

reference set type

Definition at line 27 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef std::vector<const typename CKey::value_type *> edm::OneToValue< CKey, Val, index >::transient_key_vector

transient key vector

Definition at line 31 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef std::map<const typename CKey::value_type *, Val> edm::OneToValue< CKey, Val, index >::transient_map_type

transient map type

Definition at line 29 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef std::vector<Val> edm::OneToValue< CKey, Val, index >::transient_val_vector

transient val vector

Definition at line 33 of file OneToValue.h.

template<typename CKey, typename Val, typename index = unsigned int>
typedef Val edm::OneToValue< CKey, Val, index >::val_type

values reference collection type

Definition at line 17 of file OneToValue.h.


Member Function Documentation

template<typename CKey, typename Val, typename index = unsigned int>
static void edm::OneToValue< CKey, Val, index >::insert ( ref_type ref,
map_type m,
const key_type k,
const data_type v 
) [inline, static]

insert in the map

Definition at line 35 of file OneToValue.h.

                                                                 {
      if (k.isNull())
        Exception::throwThis(errors::InvalidReference,
          "can't insert null references in AssociationMap");
      if (ref.key.isNull()) {
        ref.key = KeyRefProd(k);
      }
      helpers::checkRef(ref.key, k);
      index_type ik = index_type(k.key());
      m[ik] = v;
    }
template<typename CKey, typename Val, typename index = unsigned int>
static map_type::size_type edm::OneToValue< CKey, Val, index >::size ( const map_assoc ) [inline, static]

size of data_type

Definition at line 52 of file OneToValue.h.

{ return 1; }
template<typename CKey, typename Val, typename index = unsigned int>
static void edm::OneToValue< CKey, Val, index >::sort ( map_type ) [inline, static]

sort

Definition at line 54 of file OneToValue.h.

{ }
template<typename CKey, typename Val, typename index = unsigned int>
static transient_key_vector edm::OneToValue< CKey, Val, index >::transientKeyVector ( const ref_type ref,
const map_type map 
) [inline, static]

fill transient key vector

Definition at line 66 of file OneToValue.h.

                                                                                               {
      transient_key_vector m;
      const CKey & ckey = * ref.key;
      for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++ i)
        m.push_back(& ckey[i->first]);
      return m;
    }
template<typename CKey, typename Val, typename index = unsigned int>
static transient_map_type edm::OneToValue< CKey, Val, index >::transientMap ( const ref_type ref,
const map_type map 
) [inline, static]

fill transient map

Definition at line 56 of file OneToValue.h.

                                                                                       {
      transient_map_type m;
      const CKey & ckey = * ref.key;
      for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++ i) {
        const typename CKey::value_type * k = & ckey[i->first];
        m.insert(std::make_pair(k, i->second));
      }
      return m;
    }
template<typename CKey, typename Val, typename index = unsigned int>
static transient_val_vector edm::OneToValue< CKey, Val, index >::transientValVector ( const ref_type ref,
const map_type map 
) [inline, static]

fill transient val vector

Definition at line 74 of file OneToValue.h.

                                                                                               {
      transient_val_vector m;
      for(typename map_type::const_iterator i = map.begin(); i != map.end(); ++ i)
        m.push_back(i->second);
      return m;
    }
template<typename CKey, typename Val, typename index = unsigned int>
static val_type edm::OneToValue< CKey, Val, index >::val ( const ref_type ref,
const map_assoc v 
) [inline, static]

return values collection

Definition at line 48 of file OneToValue.h.

                                                                   {
      return v;
    }