#include <DataFormats/Common/interface/MultiAssociation.h>
Public Types | |
typedef C | Collection |
typedef boost::sub_range < const Collection > | const_range |
typedef boost::sub_range < Collection > | range |
Public Member Functions | |
bool | contains (const edm::ProductID &id) const |
True if there are keys from this product id. | |
unsigned int | dataSize () const |
Returns the number of values. | |
bool | empty () const |
Returns true if there are no keys. | |
template<typename HandleType> | |
FastFiller | fastFiller (const HandleType &handle) |
range | get (const edm::ProductID &id, unsigned int t) |
Get a range of values for this product id and index (fast). | |
const_range | get (const edm::ProductID &id, unsigned int t) const |
Get a range of values for this product id and index (fast). | |
Collection | getValues (const edm::ProductID &id, unsigned int t) const |
Get a copy of the values for this product id and index (slow!). | |
template<typename RefKey> | |
Collection | getValues (const RefKey &r) const |
Get a copy of the values for this key (slow!). | |
template<typename HandleType> | |
LazyFiller | lazyFiller (const HandleType &h, bool fillOnExit=false) |
MultiAssociation () | |
template<typename RefKey> | |
range | operator[] (const RefKey &r) |
Get a range of values for this key (fast). | |
template<typename RefKey> | |
const_range | operator[] (const RefKey &r) const |
Get a range of values for this key (fast). | |
unsigned int | size () const |
Returns the number of keys. | |
void | swap (MultiAssociation &other) |
Private Types | |
typedef helper::IndexRangeAssociation | Indices |
Private Attributes | |
Collection | data_ |
Indices | indices_ |
Friends | |
class | FastFiller |
class | LazyFiller |
Classes | |
class | FastFiller |
FastFiller for the MultiAssociation. More... | |
class | LazyFiller |
LazyFiller for the MultiAssociation. More... |
Definition at line 151 of file MultiAssociation.h.
typedef C edm::MultiAssociation< C >::Collection |
Definition at line 153 of file MultiAssociation.h.
typedef boost::sub_range<const Collection> edm::MultiAssociation< C >::const_range |
Definition at line 154 of file MultiAssociation.h.
typedef helper::IndexRangeAssociation edm::MultiAssociation< C >::Indices [private] |
Definition at line 280 of file MultiAssociation.h.
typedef boost::sub_range<Collection> edm::MultiAssociation< C >::range |
Definition at line 155 of file MultiAssociation.h.
edm::MultiAssociation< C >::MultiAssociation | ( | ) | [inline] |
bool edm::MultiAssociation< C >::contains | ( | const edm::ProductID & | id | ) | const [inline] |
True if there are keys from this product id.
Definition at line 178 of file MultiAssociation.h.
References edm::helper::IndexRangeAssociation::contains(), and edm::MultiAssociation< C >::indices_.
unsigned int edm::MultiAssociation< C >::dataSize | ( | ) | const [inline] |
Returns the number of values.
Definition at line 195 of file MultiAssociation.h.
References edm::MultiAssociation< C >::data_.
00195 { return data_.size(); }
bool edm::MultiAssociation< C >::empty | ( | ) | const [inline] |
Returns true if there are no keys.
Definition at line 201 of file MultiAssociation.h.
References edm::helper::IndexRangeAssociation::empty(), and edm::MultiAssociation< C >::indices_.
FastFiller edm::MultiAssociation< C >::fastFiller | ( | const HandleType & | handle | ) | [inline] |
Definition at line 233 of file MultiAssociation.h.
References edm::MultiAssociation< C >::FastFiller.
00233 { return FastFiller(*this, handle); }
MultiAssociation< C >::range edm::MultiAssociation< C >::get | ( | const edm::ProductID & | id, | |
unsigned int | t | |||
) | [inline] |
Get a range of values for this product id and index (fast).
Definition at line 300 of file MultiAssociation.h.
References edm::MultiAssociation< C >::data_, edm::helper::IndexRangeAssociation::get(), and edm::MultiAssociation< C >::indices_.
00300 { 00301 Indices::range idxrange = indices_.get(id,key); 00302 return range(data_.begin()+idxrange.first, data_.begin()+idxrange.second); 00303 }
MultiAssociation< C >::const_range edm::MultiAssociation< C >::get | ( | const edm::ProductID & | id, | |
unsigned int | t | |||
) | const [inline] |
Get a range of values for this product id and index (fast).
Definition at line 293 of file MultiAssociation.h.
References edm::MultiAssociation< C >::data_, edm::helper::IndexRangeAssociation::get(), and edm::MultiAssociation< C >::indices_.
00293 { 00294 Indices::range idxrange = indices_.get(id,key); 00295 return const_range(data_.begin()+idxrange.first, data_.begin()+idxrange.second); 00296 }
MultiAssociation< C >::Collection edm::MultiAssociation< C >::getValues | ( | const edm::ProductID & | id, | |
unsigned int | t | |||
) | const [inline] |
Get a copy of the values for this product id and index (slow!).
Definition at line 308 of file MultiAssociation.h.
00308 { 00309 Collection ret; 00310 const_range values = get(id,key); 00311 for (typename const_range::const_iterator it = values.begin(), ed = values.end(); it != ed; ++it) { 00312 ret.push_back(*it); 00313 } 00314 return ret; 00315 }
Collection edm::MultiAssociation< C >::getValues | ( | const RefKey & | r | ) | const [inline] |
LazyFiller edm::MultiAssociation< C >::lazyFiller | ( | const HandleType & | h, | |
bool | fillOnExit = false | |||
) | [inline] |
Definition at line 277 of file MultiAssociation.h.
References edm::MultiAssociation< C >::LazyFiller.
00277 { return LazyFiller(*this, h, fillOnExit); }
range edm::MultiAssociation< C >::operator[] | ( | const RefKey & | r | ) | [inline] |
const_range edm::MultiAssociation< C >::operator[] | ( | const RefKey & | r | ) | const [inline] |
unsigned int edm::MultiAssociation< C >::size | ( | void | ) | const [inline] |
Returns the number of keys.
Definition at line 198 of file MultiAssociation.h.
References edm::MultiAssociation< C >::indices_, and edm::helper::IndexRangeAssociation::size().
void edm::MultiAssociation< C >::swap | ( | MultiAssociation< C > & | other | ) | [inline] |
Definition at line 189 of file MultiAssociation.h.
References edm::MultiAssociation< C >::data_, edm::MultiAssociation< C >::indices_, and edm::helper::IndexRangeAssociation::swap().
Referenced by edm::swap().
friend class FastFiller [friend] |
Definition at line 230 of file MultiAssociation.h.
Referenced by edm::MultiAssociation< C >::fastFiller().
friend class LazyFiller [friend] |
Definition at line 274 of file MultiAssociation.h.
Referenced by edm::MultiAssociation< C >::lazyFiller().
Collection edm::MultiAssociation< C >::data_ [private] |
Definition at line 282 of file MultiAssociation.h.
Referenced by edm::MultiAssociation< C >::dataSize(), edm::MultiAssociation< C >::get(), edm::MultiAssociation< C >::FastFiller::setValues(), and edm::MultiAssociation< C >::swap().
Indices edm::MultiAssociation< C >::indices_ [private] |
Definition at line 281 of file MultiAssociation.h.
Referenced by edm::MultiAssociation< C >::contains(), edm::MultiAssociation< C >::empty(), edm::MultiAssociation< C >::get(), edm::MultiAssociation< C >::size(), and edm::MultiAssociation< C >::swap().