CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::LazyGetter< T > Class Template Reference

#include <LazyGetter.h>

Public Types

typedef
boost::transform_iterator
< LazyAdapter< T >, typename
register_type::const_iterator > 
const_iterator
 
typedef record_type::const_iterator record_iterator
 
typedef std::vector< Trecord_type
 
typedef
boost::transform_iterator
< UpdateGetterAdapter< T >
, typename
register_type::const_iterator > 
register_iterator
 
typedef std::vector
< RegionIndex< T > > 
register_type
 
typedef Ref< LazyGetter< T >
, T, FindValue< T > > 
value_ref
 

Public Member Functions

const_iterator begin () const
 Returns an iterator to the first register_. More...
 
register_iterator begin_nounpack () const
 Returns an iterator to the start of the register_ without unpacking. More...
 
record_iterator begin_record () const
 Returns an iterator to the start of record_. More...
 
bool empty () const
 Returns true if record_ is empty. More...
 
const_iterator end () const
 Returns the off-the-end iterator. More...
 
register_iterator end_nounpack () const
 Returns the off-the-end iter. More...
 
record_iterator end_record () const
 Returns an off-the-end iterator. More...
 
const_iterator find (uint32_t index) const
 Returns an iterator to the register_ for a given index. More...
 
 LazyGetter ()
 Default constructor. More...
 
 LazyGetter (uint32_t, const boost::shared_ptr< LazyUnpacker< T > > &)
 Constructor with unpacker. More...
 
const RegionIndex< T > & operator[] (uint32_t index) const
 Returns a reference to the register_ for a given index. More...
 
uint32_t regions () const
 Returns the size of LazyUnpacker::register_. More...
 
uint32_t size () const
 Returns the size of the record_. More...
 
void swap (LazyGetter &other)
 Swap contents of class. More...
 
bool unpacked (uint32_t) const
 

Private Member Functions

 BOOST_CLASS_REQUIRE (T, boost, LessThanComparableConcept)
 

Private Attributes

std::vector< Trecord_
 
std::vector< RegionIndex< T > > register_
 
boost::shared_ptr
< LazyUnpacker< T > > 
unpacker_
 

Detailed Description

template<class T>
class edm::LazyGetter< T >

Definition at line 21 of file LazyGetter.h.

Member Typedef Documentation

template<class T>
typedef boost::transform_iterator< LazyAdapter<T>, typename register_type::const_iterator > edm::LazyGetter< T >::const_iterator

Definition at line 311 of file LazyGetter.h.

template<class T>
typedef record_type::const_iterator edm::LazyGetter< T >::record_iterator

Definition at line 310 of file LazyGetter.h.

template<class T>
typedef std::vector<T> edm::LazyGetter< T >::record_type

Definition at line 308 of file LazyGetter.h.

template<class T>
typedef boost::transform_iterator< UpdateGetterAdapter<T>, typename register_type::const_iterator > edm::LazyGetter< T >::register_iterator

Definition at line 309 of file LazyGetter.h.

template<class T>
typedef std::vector< RegionIndex<T> > edm::LazyGetter< T >::register_type

Definition at line 307 of file LazyGetter.h.

template<class T>
typedef Ref< LazyGetter<T>, T, FindValue<T> > edm::LazyGetter< T >::value_ref

Definition at line 312 of file LazyGetter.h.

Constructor & Destructor Documentation

template<class T >
edm::LazyGetter< T >::LazyGetter ( )
inline

Default constructor.

Definition at line 372 of file LazyGetter.h.

372  : unpacker_(), record_(), register_()
373  {}
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
edm::LazyGetter< T >::LazyGetter ( uint32_t  nregions,
const boost::shared_ptr< LazyUnpacker< T > > &  unpacker 
)
inline

Constructor with unpacker.

Definition at line 377 of file LazyGetter.h.

References edm::LazyGetter< T >::record_, and edm::LazyGetter< T >::register_.

377  : unpacker_(unpacker), record_(), register_()
378  {
379  //Reserve 100,000 to absorb event-by-event fluctuations.
380  record_.reserve(100000);
381  register_.reserve(nregions);
382  for (uint32_t iregion=0;iregion<nregions;iregion++) {
383  register_.push_back(RegionIndex<T>(iregion,0,0,this));
384  }
385  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
std::vector< T > record_
Definition: LazyGetter.h:366

Member Function Documentation

template<class T >
LazyGetter< T >::const_iterator edm::LazyGetter< T >::begin ( void  ) const
inline

Returns an iterator to the first register_.

Definition at line 430 of file LazyGetter.h.

431  {
432  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
433  return boost::make_transform_iterator(register_.begin(),adapter);
434  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
LazyGetter< T >::register_iterator edm::LazyGetter< T >::begin_nounpack ( ) const
inline

Returns an iterator to the start of the register_ without unpacking.

Definition at line 448 of file LazyGetter.h.

449  {
450  const UpdateGetterAdapter<T> adapter(this);
451  return boost::make_transform_iterator(register_.begin(),adapter);
452  }
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
template<class T >
LazyGetter< T >::record_iterator edm::LazyGetter< T >::begin_record ( ) const
inline

Returns an iterator to the start of record_.

Definition at line 474 of file LazyGetter.h.

Referenced by edm::ContainerMaskTraits< edm::LazyGetter< T > >::indexFor().

475  {
476  return record_.begin();
477  }
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T>
edm::LazyGetter< T >::BOOST_CLASS_REQUIRE ( T  ,
boost  ,
LessThanComparableConcept   
)
private
template<class T >
bool edm::LazyGetter< T >::empty ( ) const
inline

Returns true if record_ is empty.

Definition at line 498 of file LazyGetter.h.

Referenced by Vispa.Gui.VispaWidget.TextField::setAutosizeFont(), and Vispa.Gui.VispaWidget.TextField::setAutotruncate().

499  {
500  return record_.empty();
501  }
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
LazyGetter< T >::const_iterator edm::LazyGetter< T >::end ( void  ) const
inline

Returns the off-the-end iterator.

Definition at line 439 of file LazyGetter.h.

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

440  {
441  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
442  return boost::make_transform_iterator(register_.end(),adapter);
443  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
LazyGetter< T >::register_iterator edm::LazyGetter< T >::end_nounpack ( ) const
inline

Returns the off-the-end iter.

Definition at line 457 of file LazyGetter.h.

458  {
459  const UpdateGetterAdapter<T> adapter(this);
460  return boost::make_transform_iterator(register_.end(),adapter);
461  }
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
template<class T >
LazyGetter< T >::record_iterator edm::LazyGetter< T >::end_record ( ) const
inline

Returns an off-the-end iterator.

Definition at line 482 of file LazyGetter.h.

483  {
484  return record_.end();
485  }
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
LazyGetter< T >::const_iterator edm::LazyGetter< T >::find ( uint32_t  index) const
inline

Returns an iterator to the register_ for a given index.

Definition at line 408 of file LazyGetter.h.

References end, and getHLTprescales::index.

Referenced by BeautifulSoup.Tag::_invert(), and BeautifulSoup.PageElement::insert().

409  {
410  if (index>=regions()) return end();
411  typename register_type::const_iterator it = register_.begin()+index;
412  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
413  return boost::make_transform_iterator(it,adapter);
414  }
uint32_t regions() const
Returns the size of LazyUnpacker::register_.
Definition: LazyGetter.h:400
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
const_iterator end() const
Returns the off-the-end iterator.
Definition: LazyGetter.h:439
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
const RegionIndex< T > & edm::LazyGetter< T >::operator[] ( uint32_t  index) const
inline

Returns a reference to the register_ for a given index.

Definition at line 419 of file LazyGetter.h.

References edm::lazydetail::_throw_range(), and getHLTprescales::index.

420  {
422  typename register_type::const_iterator it = register_.begin()+index;
423  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
424  return *(boost::make_transform_iterator(it,adapter));
425  }
uint32_t regions() const
Returns the size of LazyUnpacker::register_.
Definition: LazyGetter.h:400
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
void _throw_range(uint32_t region)
Definition: LazyGetter.h:28
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
uint32_t edm::LazyGetter< T >::regions ( ) const
inline

Returns the size of LazyUnpacker::register_.

Definition at line 400 of file LazyGetter.h.

401  {
402  return register_.size();
403  }
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
template<class T >
uint32_t edm::LazyGetter< T >::size ( void  ) const
inline

Returns the size of the record_.

Definition at line 490 of file LazyGetter.h.

Referenced by edm::ContainerMaskTraits< edm::LazyGetter< T > >::size().

491  {
492  return record_.size();
493  }
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T>
void edm::LazyGetter< T >::swap ( LazyGetter< T > &  other)
inline

Swap contents of class.

Definition at line 390 of file LazyGetter.h.

References edm::LazyGetter< T >::record_, edm::LazyGetter< T >::register_, std::swap(), and edm::LazyGetter< T >::unpacker_.

Referenced by edm::swap().

391  {
392  std::swap(unpacker_,other.unpacker_);
393  std::swap(record_,other.record_);
394  std::swap(register_,other.register_);
395  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:365
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::vector< T > record_
Definition: LazyGetter.h:366
template<class T >
bool edm::LazyGetter< T >::unpacked ( uint32_t  index) const
inline

Returns boolean describing unpacking status of a given region without unpacking

Definition at line 466 of file LazyGetter.h.

References getHLTprescales::index.

467  {
468  return (index<regions()) ? register_[index].unpacked() : false;
469  }
uint32_t regions() const
Returns the size of LazyUnpacker::register_.
Definition: LazyGetter.h:400
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:367

Member Data Documentation

template<class T>
std::vector<T> edm::LazyGetter< T >::record_
private

Definition at line 366 of file LazyGetter.h.

Referenced by edm::LazyGetter< T >::LazyGetter(), and edm::LazyGetter< T >::swap().

template<class T>
std::vector< RegionIndex<T> > edm::LazyGetter< T >::register_
private

Definition at line 367 of file LazyGetter.h.

Referenced by edm::LazyGetter< T >::LazyGetter(), and edm::LazyGetter< T >::swap().

template<class T>
boost::shared_ptr< LazyUnpacker<T> > edm::LazyGetter< T >::unpacker_
private

Definition at line 365 of file LazyGetter.h.

Referenced by edm::LazyGetter< T >::swap().