CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

edm::RefVectorBase< KEY > Class Template Reference

#include <RefVectorBase.h>

List of all members.

Public Types

typedef KEY key_type
typedef std::vector< RefItem
< KEY > > 
RefItems
typedef RefItems::size_type size_type

Public Member Functions

size_type capacity () const
 Capacity of vector.
void clear ()
 clear the vector
bool empty () const
 Is vector empty?
RefItems::iterator eraseAtIndex (size_type index)
 erase an element from the vector
RefItems const & items () const
 Accessor for vector of keys and pointers.
RefVectorBaseoperator= (RefVectorBase const &rhs)
 Copy assignment.
void pushBack (RefCore const &product, RefItem< KEY > const &item_)
RefCore const & refCore () const
 Accessor for product ID and product getter.
 RefVectorBase (ProductID const &productID, void const *prodPtr=0, EDProductGetter const *prodGetter=0)
 RefVectorBase ()
 Default constructor needed for reading from persistent store. Not for direct use.
void reserve (size_type n)
 Reserve space for vector.
size_type size () const
 Size of vector.
void swap (RefVectorBase< KEY > &other)
 swap two vectors
 ~RefVectorBase ()
 Destructor.

Private Attributes

RefItems items_
RefCore product_

Detailed Description

template<typename KEY>
class edm::RefVectorBase< KEY >

Definition at line 20 of file RefVectorBase.h.


Member Typedef Documentation

template<typename KEY>
typedef KEY edm::RefVectorBase< KEY >::key_type

Definition at line 23 of file RefVectorBase.h.

template<typename KEY>
typedef std::vector<RefItem<KEY> > edm::RefVectorBase< KEY >::RefItems

Definition at line 22 of file RefVectorBase.h.

template<typename KEY>
typedef RefItems::size_type edm::RefVectorBase< KEY >::size_type

Definition at line 24 of file RefVectorBase.h.


Constructor & Destructor Documentation

template<typename KEY>
edm::RefVectorBase< KEY >::RefVectorBase ( ) [inline]

Default constructor needed for reading from persistent store. Not for direct use.

Definition at line 26 of file RefVectorBase.h.

: product_(), items_() {}
template<typename KEY>
edm::RefVectorBase< KEY >::RefVectorBase ( ProductID const &  productID,
void const *  prodPtr = 0,
EDProductGetter const *  prodGetter = 0 
) [inline, explicit]

Definition at line 28 of file RefVectorBase.h.

                                                                  :
      product_(productID, prodPtr, prodGetter, false), items_() {}
template<typename KEY>
edm::RefVectorBase< KEY >::~RefVectorBase ( ) [inline]

Destructor.

Definition at line 33 of file RefVectorBase.h.

{}

Member Function Documentation

template<typename KEY>
size_type edm::RefVectorBase< KEY >::capacity ( ) const [inline]

Capacity of vector.

Definition at line 53 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::capacity().

{return items_.capacity();}
template<typename KEY>
void edm::RefVectorBase< KEY >::clear ( void  ) [inline]

clear the vector

Definition at line 64 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::clear().

                 {
      items_.clear();
      product_ = RefCore();
    }
template<typename KEY>
bool edm::RefVectorBase< KEY >::empty ( ) const [inline]

Is vector empty?

Definition at line 42 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::empty().

{return items_.empty();}
template<typename KEY>
RefItems::iterator edm::RefVectorBase< KEY >::eraseAtIndex ( size_type  index) [inline]

erase an element from the vector

Definition at line 59 of file RefVectorBase.h.

                                                            {
      return items_.erase(items_.begin() + index);
    }
template<typename KEY>
RefItems const& edm::RefVectorBase< KEY >::items ( ) const [inline]

Accessor for vector of keys and pointers.

Definition at line 39 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::at(), edm::operator==(), and edm::RefVector< TrackingRecHitCollection >::operator[]().

{return items_;}
template<typename KEY>
RefVectorBase& edm::RefVectorBase< KEY >::operator= ( RefVectorBase< KEY > const &  rhs) [inline]

Copy assignment.

Definition at line 76 of file RefVectorBase.h.

                                                       {
      RefVectorBase temp(rhs);
      this->swap(temp);
      return *this;
    }
template<typename KEY>
void edm::RefVectorBase< KEY >::pushBack ( RefCore const &  product,
RefItem< KEY > const &  item_ 
) [inline]

Definition at line 47 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::push_back().

                                                                     {
      product_.pushBackItem(product, true);
      items_.push_back(item_);
    }
template<typename KEY>
RefCore const& edm::RefVectorBase< KEY >::refCore ( ) const [inline]
template<typename KEY>
void edm::RefVectorBase< KEY >::reserve ( size_type  n) [inline]

Reserve space for vector.

Definition at line 56 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::reserve().

{items_.reserve(n);}
template<typename KEY>
size_type edm::RefVectorBase< KEY >::size ( void  ) const [inline]

Size of vector.

Definition at line 45 of file RefVectorBase.h.

Referenced by edm::RefVector< TrackingRecHitCollection >::size().

{return items_.size();}
template<typename KEY>
void edm::RefVectorBase< KEY >::swap ( RefVectorBase< KEY > &  other) [inline]

swap two vectors

Definition at line 70 of file RefVectorBase.h.

Referenced by edm::RefVectorBase< key_type >::operator=(), and edm::swap().

                                          {
      product_.swap(other.product_);
      items_.swap(other.items_);
    }

Member Data Documentation

template<typename KEY>
RefItems edm::RefVectorBase< KEY >::items_ [private]
template<typename KEY>
RefCore edm::RefVectorBase< KEY >::product_ [private]