CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Attributes
edm::MultiAssociation< C >::FastFiller Class Reference

#include <MultiAssociation.h>

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. More...
 
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. More...
 
 ~FastFiller ()
 

Private Types

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

Private Attributes

MultiAssociationassoc_
 
std::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 230 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.

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

Definition at line 214 of file MultiAssociation.h.

unsigned int size() const
Returns the number of keys.
edm::helper::IndexRangeAssociation::FastFiller IndexFiller
std::shared_ptr< IndexFiller > indexFiller_
template<typename C>
edm::MultiAssociation< C >::FastFiller::~FastFiller ( )
inline

Definition at line 217 of file MultiAssociation.h.

217 {}

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 crabWrapper::key.

Referenced by edm::MultiAssociation< C >::LazyFiller::fill().

221  {
222  setValues(k.id(), k.key(), refs);
223  }
void setValues(const KeyRef &k, const Collection &refs)
Sets the Collection values associated to this key, making copies of those in 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 334 of file MultiAssociation.h.

References edm::helper::IndexRangeAssociation::FastFiller::assoc_, and edm::helper::IndexRangeAssociation::size().

334  {
335  indexFiller_->insert(id, key, assoc_.data_.size(), vals.size());
336  for (typename Collection::const_iterator it = vals.begin(), ed = vals.end(); it != ed; ++it) {
337  assoc_.data_.push_back(*it);
338  }
339  }
std::shared_ptr< IndexFiller > indexFiller_

Member Data Documentation

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

Definition at line 229 of file MultiAssociation.h.

template<typename C>
std::shared_ptr<IndexFiller> edm::MultiAssociation< C >::FastFiller::indexFiller_
private

Definition at line 231 of file MultiAssociation.h.