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 | Friends
edm::PtrVector< T > Class Template Reference

#include <PtrVector.h>

Inheritance diagram for edm::PtrVector< T >:
edm::PtrVectorBase

Public Types

typedef void collection_type
 
typedef PtrVectorItr< Tconst_iterator
 
typedef PtrVectorItr< Titerator
 
typedef Ptr< Tvalue_type
 
- Public Types inherited from edm::PtrVectorBase
typedef unsigned long key_type
 
typedef key_type size_type
 

Public Member Functions

const_iterator begin () const
 
const_iterator end () const
 
void fillView (std::vector< void const * > &pointers) const
 
PtrVectoroperator= (PtrVector const &rhs)
 
Ptr< Toperator[] (unsigned long const iIndex) const
 
 PtrVector ()
 
 PtrVector (ProductID const &iId)
 
 PtrVector (PtrVector< T > const &iOther)
 
template<typename U >
 PtrVector (PtrVector< U > const &iOther)
 
void push_back (Ptr< T > const &iPtr)
 
template<typename U >
void push_back (Ptr< U > const &iPtr)
 
void swap (PtrVector &other)
 
- Public Member Functions inherited from edm::PtrVectorBase
size_type capacity () const
 Capacity of the RefVector. More...
 
void clear ()
 Clear the PtrVector. More...
 
bool empty () const
 Is the RefVector empty. More...
 
bool hasCache () const
 
bool hasProductCache () const
 
ProductID id () const
 Accessor for product ID. More...
 
bool isAvailable () const
 
bool isNonnull () const
 Checks for non-null. More...
 
bool isNull () const
 Checks for null. More...
 
bool isTransient () const
 
bool operator! () const
 Checks for null. More...
 
bool operator== (PtrVectorBase const &iRHS) const
 
void const * product () const
 
EDProductGetter const * productGetter () const
 Accessor for product getter. More...
 
 PtrVectorBase (ProductID const &productID, void const *prodPtr=0, EDProductGetter const *prodGetter=0)
 
void reserve (size_type n)
 Reserve space for RefVector. More...
 
void setProductGetter (EDProductGetter *iGetter) const
 
size_type size () const
 Size of the RefVector. More...
 
virtual ~PtrVectorBase ()
 

Private Member Functions

Ptr< TfromItr (std::vector< void const * >::const_iterator const &iItr) const
 
std::type_info const & typeInfo () const
 

Friends

class PtrVectorItr< T >
 

Additional Inherited Members

- Protected Member Functions inherited from edm::PtrVectorBase
template<typename TPtr >
TPtr makePtr (unsigned long iIndex) const
 
template<typename TPtr >
TPtr makePtr (std::vector< void const * >::const_iterator const iIt) const
 
 PtrVectorBase ()
 
void push_back_base (RefCore const &core, key_type iKey, void const *iData)
 
void swap (PtrVectorBase &other)
 swap More...
 
std::vector< void const * >
::const_iterator 
void_begin () const
 
std::vector< void const * >
::const_iterator 
void_end () const
 

Detailed Description

template<typename T>
class edm::PtrVector< T >

Definition at line 33 of file PtrVector.h.

Member Typedef Documentation

template<typename T>
typedef void edm::PtrVector< T >::collection_type

Definition at line 108 of file PtrVector.h.

template<typename T>
typedef PtrVectorItr<T> edm::PtrVector< T >::const_iterator

Definition at line 105 of file PtrVector.h.

template<typename T>
typedef PtrVectorItr<T> edm::PtrVector< T >::iterator

Definition at line 106 of file PtrVector.h.

template<typename T>
typedef Ptr<T> edm::PtrVector< T >::value_type

Definition at line 107 of file PtrVector.h.

Constructor & Destructor Documentation

template<typename T>
edm::PtrVector< T >::PtrVector ( )
inline

Definition at line 111 of file PtrVector.h.

template<typename T>
edm::PtrVector< T >::PtrVector ( ProductID const &  iId)
inlineexplicit

Definition at line 112 of file PtrVector.h.

112 : PtrVectorBase(iId) {}
template<typename T>
edm::PtrVector< T >::PtrVector ( PtrVector< T > const &  iOther)
inline

Definition at line 113 of file PtrVector.h.

113 : PtrVectorBase(iOther) {}
template<typename T>
template<typename U >
edm::PtrVector< T >::PtrVector ( PtrVector< U > const &  iOther)
inline

Definition at line 116 of file PtrVector.h.

116  : PtrVectorBase(iOther) {
117  BOOST_STATIC_ASSERT( (boost::is_base_of<T, U>::value) );
118  }

Member Function Documentation

template<typename T>
const_iterator edm::PtrVector< T >::begin ( void  ) const
inline
template<typename T>
const_iterator edm::PtrVector< T >::end ( void  ) const
inline
template<typename T >
void PtrVector::fillView ( std::vector< void const * > &  pointers) const

Definition at line 181 of file PtrVector.h.

References begin, alignCSCRings::e, end, i, edm::Ptr< T >::isNull(), and findQualityFiles::size.

Referenced by edm::fillView().

181  {
182  pointers.reserve(this->size());
183  for (const_iterator i = begin(), e = end(); i != e; ++i) {
184  Ptr<T> ref = *i;
185  T const* address = ref.isNull() ? 0 : &*ref;
186  pointers.push_back(address);
187  }
188  }
int i
Definition: DBlmapReader.cc:9
size_type size() const
Size of the RefVector.
Definition: PtrVectorBase.h:73
char * address
Definition: mlp_lapack.h:14
PtrVectorItr< T > const_iterator
Definition: PtrVector.h:105
const_iterator begin() const
Definition: PtrVector.h:126
const_iterator end() const
Definition: PtrVector.h:131
long double T
template<typename T>
Ptr<T> edm::PtrVector< T >::fromItr ( std::vector< void const * >::const_iterator const &  iItr) const
inlineprivate

Definition at line 173 of file PtrVector.h.

173  {
174  return this->makePtr<Ptr<T> >(iItr);
175  }
template<typename T>
PtrVector& edm::PtrVector< T >::operator= ( PtrVector< T > const &  rhs)
inline

Definition at line 156 of file PtrVector.h.

156  {
157  PtrVector temp(rhs);
158  this->swap(temp);
159  return *this;
160  }
void swap(PtrVector &other)
Definition: PtrVector.h:152
template<typename T>
Ptr<T> edm::PtrVector< T >::operator[] ( unsigned long const  iIndex) const
inline

Definition at line 122 of file PtrVector.h.

122  {
123  return this->makePtr<Ptr<T> >(iIndex);
124  }
template<typename T>
void edm::PtrVector< T >::push_back ( Ptr< T > const &  iPtr)
inline

Definition at line 137 of file PtrVector.h.

Referenced by reco::SuperCluster::addCluster(), reco::SuperCluster::addPreshowerCluster(), HiEgammaSCEnergyCorrectionAlgo::applyCorrection(), FWLiteJetProducer::applyCuts(), ConvertedPhotonProducer::buildCollections(), CaloClusterVectorCopier(), EcalClusterPUCleaningTools::CleanedSuperCluster(), GEDPhotonCoreProducer::createSingleLegConversions(), PFHcalSuperClusterAlgo::doClusteringWorker(), pat::helper::BasicOverlapTest::fillOverlapsForItem(), pat::helper::OverlapBySuperClusterSeed::fillOverlapsForItem(), Multi5x5SuperClusterProducer::getClusterPtrVector(), SuperClusterProducer::getClusterPtrVector(), HiSuperClusterProducer::getClusterPtrVector(), reco::PFHcalSuperClusterInit::initialize(), BremRecoveryClusterAlgo::makeIslandSuperClusters(), HiBremRecoveryClusterAlgo::makeIslandSuperClusters(), Multi5x5BremRecoveryClusterAlgo::makeIslandSuperClusters(), BremRecoveryClusterAlgo::makeSuperClusters(), HiBremRecoveryClusterAlgo::makeSuperClusters(), Multi5x5BremRecoveryClusterAlgo::makeSuperClusters(), HybridClusterAlgo::makeSuperClusters(), ConversionProducer::matchingSC(), helper::SelectionPtrViewAdder< T >::operator()(), UnifiedSCCollectionProducer::produce(), CleanAndMergeProducer::produce(), UncleanSCRecoveryProducer::produce(), HybridClusterProducer::produce(), EgammaHLTHybridClusterProducer::produce(), PreshowerClusterProducer::produce(), PreshowerPhiClusterProducer::produce(), ElectronRecalibSuperClusterAssociator::produce(), PFEGammaProducer::produce(), reco::modules::NamedCandCombiner< Selector, PairSelector, Cloner, Setup, Init >::produce(), pf2pat::TopProjectorAlgo< Top, Bottom >::ptrToAncestor(), PFRootEventManager::reconstructCaloJets(), PFRootEventManager::reconstructGenJets(), PFRootEventManager::reconstructPFJets(), and reco::SuperCluster::SuperCluster().

137  {
138  this->push_back_base(iPtr.refCore(),
139  iPtr.key(),
140  iPtr.hasProductCache() ? iPtr.operator->() : static_cast<void const*>(0));
141  }
void push_back_base(RefCore const &core, key_type iKey, void const *iData)
string const
Definition: compareJSON.py:14
template<typename T>
template<typename U >
void edm::PtrVector< T >::push_back ( Ptr< U > const &  iPtr)
inline

Definition at line 144 of file PtrVector.h.

144  {
145  //check that types are assignable
146  BOOST_STATIC_ASSERT( (boost::is_base_of<T, U>::value) );
147  this->push_back_base(iPtr.refCore(),
148  iPtr.key(),
149  iPtr.hasProductCache() ? iPtr.operator->() : static_cast<void const*>(0));
150  }
void push_back_base(RefCore const &core, key_type iKey, void const *iData)
string const
Definition: compareJSON.py:14
template<typename T>
void edm::PtrVector< T >::swap ( PtrVector< T > &  other)
inline

Definition at line 152 of file PtrVector.h.

Referenced by edm::PtrVector< reco::reco::PFCluster >::operator=(), and edm::swap().

152  {
153  this->PtrVectorBase::swap(other);
154  }
void swap(PtrVectorBase &other)
swap
template<typename T>
std::type_info const& edm::PtrVector< T >::typeInfo ( ) const
inlineprivatevirtual

Reimplemented from edm::PtrVectorBase.

Definition at line 170 of file PtrVector.h.

170 {return typeid(T);}
long double T

Friends And Related Function Documentation

template<typename T>
friend class PtrVectorItr< T >
friend

Definition at line 110 of file PtrVector.h.