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 209 of file MultiAssociation.h.

Member Typedef Documentation

◆ IndexFiller

Definition at line 231 of file MultiAssociation.h.

Constructor & Destructor Documentation

◆ FastFiller() [1/2]

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

Definition at line 212 of file MultiAssociation.h.

213  : assoc_(assoc), indexFiller_(new IndexFiller(assoc_.indices_, handle.id(), handle->size())) {}
edm::helper::IndexRangeAssociation::FastFiller IndexFiller
std::shared_ptr< IndexFiller > indexFiller_

◆ FastFiller() [2/2]

template<typename C>
edm::MultiAssociation< C >::FastFiller::FastFiller ( MultiAssociation assoc,
edm::ProductID  id,
unsigned int  size 
)
inline

Definition at line 215 of file MultiAssociation.h.

edm::helper::IndexRangeAssociation::FastFiller IndexFiller
std::shared_ptr< IndexFiller > indexFiller_
unsigned int size() const
Returns the number of keys.

◆ ~FastFiller()

template<typename C>
edm::MultiAssociation< C >::FastFiller::~FastFiller ( )
inline

Definition at line 218 of file MultiAssociation.h.

218 {}

Member Function Documentation

◆ setValues() [1/2]

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 222 of file MultiAssociation.h.

References dqmdumpme::k.

222  {
223  setValues(k.id(), k.key(), refs);
224  }
void setValues(const KeyRef &k, const Collection &refs)
Sets the Collection values associated to this key, making copies of those in refs.

◆ setValues() [2/2]

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 335 of file MultiAssociation.h.

References crabWrapper::key.

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

Member Data Documentation

◆ assoc_

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

Definition at line 230 of file MultiAssociation.h.

◆ indexFiller_

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

Definition at line 232 of file MultiAssociation.h.