CMS 3D CMS Logo

Public Member Functions | Private Types | Private Attributes

edm::MultiAssociation< C >::FastFiller Class Reference

#include <MultiAssociation.h>

List of all members.

Public Member Functions

template<typename HandleType >
 FastFiller (MultiAssociation &assoc, const HandleType &handle)
 FastFiller (MultiAssociation &assoc, edm::ProductID id, unsigned int size)
template<typename KeyRef >
void setValues (const KeyRef &k, const Collection &refs)
 Sets the Collection values associated to this key, making copies of those in refs.
void setValues (const edm::ProductID &id, unsigned int key, const Collection &refs)
 Sets the Collection values associated to this key, making copies of those in refs.
 ~FastFiller ()

Private Types

typedef
edm::helper::IndexRangeAssociation::FastFiller 
IndexFiller

Private Attributes

MultiAssociationassoc_
boost::shared_ptr< IndexFillerindexFiller_

Detailed Description

template<typename C>
class edm::MultiAssociation< C >::FastFiller

FastFiller for the MultiAssociation. It is fast, but it requires to fill items in strict key order. You can have a single FastFiller for a given map at time You can't access the map for this collection while filling it

Definition at line 208 of file MultiAssociation.h.


Member Typedef Documentation

Definition at line 227 of file MultiAssociation.h.


Constructor & Destructor Documentation

template<typename C>
template<typename HandleType >
edm::MultiAssociation< C >::FastFiller::FastFiller ( MultiAssociation assoc,
const HandleType &  handle 
) [inline]

Definition at line 211 of file MultiAssociation.h.

                                                                          : 
                assoc_(assoc), indexFiller_(new IndexFiller(assoc_.indices_, handle.id(), handle->size())) {}
template<typename C>
IndexRangeAssociation::FastFiller::FastFiller ( MultiAssociation assoc,
edm::ProductID  id,
unsigned int  size 
) [inline]

Definition at line 214 of file MultiAssociation.h.

                                                                                    : 
                assoc_(assoc), indexFiller_(new IndexFiller(assoc_.indices_, id, size)) {}
template<typename C>
IndexRangeAssociation::FastFiller::~FastFiller ( ) [inline]

Definition at line 217 of file MultiAssociation.h.

{}

Member Function Documentation

template<typename C>
template<typename KeyRef >
void edm::MultiAssociation< C >::FastFiller::setValues ( const KeyRef &  k,
const Collection refs 
) [inline]

Sets the Collection values associated to this key, making copies of those in refs.

Definition at line 221 of file MultiAssociation.h.

References edm::MultiAssociation< C >::FastFiller::setValues().

Referenced by edm::MultiAssociation< C >::LazyFiller::fill(), and edm::MultiAssociation< C >::FastFiller::setValues().

{ setValues(k.id(), k.key(), refs); }
template<typename C >
void edm::MultiAssociation< C >::FastFiller::setValues ( const edm::ProductID id,
unsigned int  key,
const Collection refs 
)

Sets the Collection values associated to this key, making copies of those in refs.

Definition at line 322 of file MultiAssociation.h.

References edm::MultiAssociation< C >::data_.

                                                                                                                 {
     indexFiller_->insert(id, key, assoc_.data_.size(), vals.size());
     for (typename Collection::const_iterator it = vals.begin(), ed = vals.end(); it != ed; ++it) {
        assoc_.data_.push_back(*it);
     }
  } 

Member Data Documentation

template<typename C>
MultiAssociation& edm::MultiAssociation< C >::FastFiller::assoc_ [private]

Definition at line 226 of file MultiAssociation.h.

template<typename C>
boost::shared_ptr<IndexFiller> edm::MultiAssociation< C >::FastFiller::indexFiller_ [private]

Definition at line 228 of file MultiAssociation.h.