CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions | Private Attributes

edm::LazyGetter< T > Class Template Reference

#include <LazyGetter.h>

List of all members.

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

                              : unpacker_(), record_(), register_()
    {}
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_.

                                                                                                   : unpacker_(unpacker), record_(), register_()
    {
      //Reserve 100,000 to absorb event-by-event fluctuations.
      record_.reserve(100000);
      register_.reserve(nregions);
      for (uint32_t iregion=0;iregion<nregions;iregion++) {
        register_.push_back(RegionIndex<T>(iregion,0,0,this));
      }
    }

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.

    {
      const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
      return boost::make_transform_iterator(register_.begin(),adapter);
    }
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.

    {
      const UpdateGetterAdapter<T> adapter(this);
      return boost::make_transform_iterator(register_.begin(),adapter);
    }
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.

    {
      return record_.begin();
    }
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.

    {
      return record_.empty();
    }
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.

    {
      const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
      return boost::make_transform_iterator(register_.end(),adapter);
    }
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.

    {
      const UpdateGetterAdapter<T> adapter(this);
      return boost::make_transform_iterator(register_.end(),adapter);
    }
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.

    {
      return record_.end();
    }
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.

    {
      if (index>=regions()) return end();
      typename register_type::const_iterator it = register_.begin()+index;
      const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
      return boost::make_transform_iterator(it,adapter);
    }
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::dslvdetail::_throw_range(), and getHLTprescales::index.

    {
      if (index>=regions()) edm::lazydetail::_throw_range(index);
      typename register_type::const_iterator it = register_.begin()+index;
      const LazyAdapter<T> adapter(unpacker_.get(),&record_,this);
      return *(boost::make_transform_iterator(it,adapter));
    }
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.

    {
      return register_.size();
    }
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.

    {
      return record_.size();
    }
template<class T>
void edm::LazyGetter< T >::swap ( LazyGetter< T > &  other)

Swap contents of class.

Referenced by edm::swap().

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.

    {
      return (index<regions()) ? register_[index].unpacked() : false;
    }

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().

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().

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

Definition at line 365 of file LazyGetter.h.