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< T > record_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< T > record_
 
std::vector< RegionIndex< T > > register_
 
boost::shared_ptr
< LazyUnpacker< T > > 
unpacker_
 

Detailed Description

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

Definition at line 20 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 307 of file LazyGetter.h.

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

Definition at line 306 of file LazyGetter.h.

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

Definition at line 304 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 305 of file LazyGetter.h.

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

Definition at line 303 of file LazyGetter.h.

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

Definition at line 308 of file LazyGetter.h.

Constructor & Destructor Documentation

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

Default constructor.

Definition at line 365 of file LazyGetter.h.

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

Constructor with unpacker.

Definition at line 370 of file LazyGetter.h.

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

370  : unpacker_(unpacker), record_(), register_()
371  {
372  //Reserve 100,000 to absorb event-by-event fluctuations.
373  record_.reserve(100000);
374  register_.reserve(nregions);
375  for (uint32_t iregion=0;iregion<nregions;iregion++) {
376  register_.push_back(RegionIndex<T>(iregion,0,0,this));
377  }
378  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:358
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
std::vector< T > record_
Definition: LazyGetter.h:359

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 423 of file LazyGetter.h.

424  {
425  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
426  return boost::make_transform_iterator(register_.begin(),adapter);
427  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:358
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
std::vector< T > record_
Definition: LazyGetter.h:359
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 441 of file LazyGetter.h.

442  {
443  const UpdateGetterAdapter<T> adapter(this);
444  return boost::make_transform_iterator(register_.begin(),adapter);
445  }
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
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 467 of file LazyGetter.h.

468  {
469  return record_.begin();
470  }
std::vector< T > record_
Definition: LazyGetter.h:359
template<class T>
edm::LazyGetter< T >::BOOST_CLASS_REQUIRE ( ,
boost  ,
LessThanComparableConcept   
)
private
template<class T >
bool edm::LazyGetter< T >::empty ( ) const
inline

Returns true if record_ is empty.

Definition at line 491 of file LazyGetter.h.

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

492  {
493  return record_.empty();
494  }
std::vector< T > record_
Definition: LazyGetter.h:359
template<class T >
LazyGetter< T >::const_iterator edm::LazyGetter< T >::end ( void  ) const
inline

Returns the off-the-end iterator.

Definition at line 432 of file LazyGetter.h.

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

433  {
434  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
435  return boost::make_transform_iterator(register_.end(),adapter);
436  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:358
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
std::vector< T > record_
Definition: LazyGetter.h:359
template<class T >
LazyGetter< T >::register_iterator edm::LazyGetter< T >::end_nounpack ( ) const
inline

Returns the off-the-end iter.

Definition at line 450 of file LazyGetter.h.

451  {
452  const UpdateGetterAdapter<T> adapter(this);
453  return boost::make_transform_iterator(register_.end(),adapter);
454  }
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
template<class T >
LazyGetter< T >::record_iterator edm::LazyGetter< T >::end_record ( ) const
inline

Returns an off-the-end iterator.

Definition at line 475 of file LazyGetter.h.

476  {
477  return record_.end();
478  }
std::vector< T > record_
Definition: LazyGetter.h:359
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 401 of file LazyGetter.h.

References end, and getHLTprescales::index.

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

402  {
403  if (index>=regions()) return end();
404  typename register_type::const_iterator it = register_.begin()+index;
405  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
406  return boost::make_transform_iterator(it,adapter);
407  }
uint32_t regions() const
Returns the size of LazyUnpacker::register_.
Definition: LazyGetter.h:393
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:358
const_iterator end() const
Returns the off-the-end iterator.
Definition: LazyGetter.h:432
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
std::vector< T > record_
Definition: LazyGetter.h:359
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 412 of file LazyGetter.h.

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

413  {
415  typename register_type::const_iterator it = register_.begin()+index;
416  const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
417  return *(boost::make_transform_iterator(it,adapter));
418  }
uint32_t regions() const
Returns the size of LazyUnpacker::register_.
Definition: LazyGetter.h:393
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:358
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
void _throw_range(uint32_t region)
Definition: LazyGetter.h:27
std::vector< T > record_
Definition: LazyGetter.h:359
template<class T >
uint32_t edm::LazyGetter< T >::regions ( ) const
inline

Returns the size of LazyUnpacker::register_.

Definition at line 393 of file LazyGetter.h.

394  {
395  return register_.size();
396  }
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
template<class T >
uint32_t edm::LazyGetter< T >::size ( void  ) const
inline

Returns the size of the record_.

Definition at line 483 of file LazyGetter.h.

484  {
485  return record_.size();
486  }
std::vector< T > record_
Definition: LazyGetter.h:359
template<class T >
void edm::LazyGetter< T >::swap ( LazyGetter< T > &  other)
inline

Swap contents of class.

Definition at line 383 of file LazyGetter.h.

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

Referenced by edm::swap().

384  {
385  std::swap(unpacker_,other.unpacker_);
386  std::swap(record_,other.record_);
387  std::swap(register_,other.register_);
388  }
boost::shared_ptr< LazyUnpacker< T > > unpacker_
Definition: LazyGetter.h:358
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
std::vector< T > record_
Definition: LazyGetter.h:359
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 459 of file LazyGetter.h.

References getHLTprescales::index.

460  {
461  return (index<regions()) ? register_[index].unpacked() : false;
462  }
uint32_t regions() const
Returns the size of LazyUnpacker::register_.
Definition: LazyGetter.h:393
std::vector< RegionIndex< T > > register_
Definition: LazyGetter.h:360

Member Data Documentation

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

Definition at line 359 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 360 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 358 of file LazyGetter.h.

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