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

#include <DataFormats/Common/interface/FwdPtr.h>

Public Types

typedef unsigned long key_type
 
typedef T value_type
 

Public Member Functions

Ptr< value_type > const & backPtr () const
 
template<typename C >
 FwdPtr (const Ptr< C > &f, const Ptr< C > &b)
 
 FwdPtr ()
 
T const * get () const
 Returns C++ pointer to the item. More...
 
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
 Checks if this FwdPtr is transient (i.e. not persistable). More...
 
key_type key () const
 
bool operator! () const
 Checks for null. More...
 
T const & operator* () const
 Dereference operator. More...
 
T const * operator-> () const
 Member dereference operator. More...
 
void const * product () const
 
EDProductGetter const * productGetter () const
 Accessor for product getter. More...
 
Ptr< value_type > const & ptr () const
 
RefCore const & refCore () const
 
 ~FwdPtr ()
 Destructor. More...
 

Private Attributes

Ptr< value_typebackPtr_
 
Ptr< value_typeptr_
 

Friends

class FwdPtrVectorBase
 

Detailed Description

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

Description: Persistent 'pointer' to an item in a collection where the collection is in the edm::Event

Usage: <usage>

Definition at line 42 of file FwdPtr.h.

Member Typedef Documentation

template<typename T>
typedef unsigned long edm::FwdPtr< T >::key_type

Definition at line 46 of file FwdPtr.h.

template<typename T>
typedef T edm::FwdPtr< T >::value_type

Definition at line 47 of file FwdPtr.h.

Constructor & Destructor Documentation

template<typename T>
template<typename C >
edm::FwdPtr< T >::FwdPtr ( const Ptr< C > &  f,
const Ptr< C > &  b 
)
inline

Definition at line 51 of file FwdPtr.h.

51  :
52  ptr_(f), backPtr_(b)
53  { assert(f.isNull() == b.isNull()); }
double f[11][100]
double b
Definition: hdecay.h:120
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
edm::FwdPtr< T >::FwdPtr ( )
inline

Definition at line 55 of file FwdPtr.h.

55  :
56  ptr_(), backPtr_()
57  {}
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
edm::FwdPtr< T >::~FwdPtr ( )
inline

Destructor.

Definition at line 72 of file FwdPtr.h.

72 {}

Member Function Documentation

template<typename T>
Ptr<value_type> const& edm::FwdPtr< T >::backPtr ( ) const
inline

Definition at line 121 of file FwdPtr.h.

Referenced by reco::PFCandidateWithSrcPtrFactory::operator()(), and TopProjectorFwdPtrOverlap< Top, Bottom >::operator()().

121 { return backPtr_;}
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
T const* edm::FwdPtr< T >::get ( void  ) const
inline
template<typename T>
bool edm::FwdPtr< T >::hasProductCache ( ) const
inline

Definition at line 113 of file FwdPtr.h.

113 { return ptr_.hasProductCache() || backPtr_.hasProductCache();}
bool hasProductCache() const
Definition: Ptr.h:171
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
ProductID edm::FwdPtr< T >::id ( void  ) const
inline

Accessor for product ID.

Definition at line 103 of file FwdPtr.h.

103 {return ptr_.isNonnull() ? ptr_.id() : backPtr_.id();}
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:152
ProductID id() const
Accessor for product ID.
Definition: Ptr.h:164
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
bool edm::FwdPtr< T >::isAvailable ( ) const
inline

Checks if collection is in memory or available in the event. No type checking is done.

Definition at line 97 of file FwdPtr.h.

97 {return ptr_.isAvailable() || backPtr_.isAvailable();}
bool isAvailable() const
Definition: Ptr.h:158
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
bool edm::FwdPtr< T >::isNonnull ( ) const
inline

Checks for non-null.

Definition at line 91 of file FwdPtr.h.

Referenced by edm::FwdPtr< FFTJPTJet >::isNull().

91 {return ptr_.isNonnull() || backPtr_.isNonnull(); }
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:152
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
bool edm::FwdPtr< T >::isNull ( ) const
inline

Checks for null.

Definition at line 87 of file FwdPtr.h.

Referenced by edm::FwdPtr< FFTJPTJet >::operator!().

87 {return !isNonnull(); }
bool isNonnull() const
Checks for non-null.
Definition: FwdPtr.h:91
template<typename T>
bool edm::FwdPtr< T >::isTransient ( ) const
inline

Checks if this FwdPtr is transient (i.e. not persistable).

Definition at line 100 of file FwdPtr.h.

100 {return ptr_.isTransient();}
bool isTransient() const
Checks if this Ptr is transient (i.e. not persistable).
Definition: Ptr.h:161
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
template<typename T>
key_type edm::FwdPtr< T >::key ( ) const
inline

Definition at line 111 of file FwdPtr.h.

111 {return ptr_.isNonnull() ? ptr_.key() : backPtr_.key() ;}
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:152
key_type key() const
Definition: Ptr.h:169
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
bool edm::FwdPtr< T >::operator! ( ) const
inline

Checks for null.

Definition at line 93 of file FwdPtr.h.

93 {return isNull();}
bool isNull() const
Checks for null.
Definition: FwdPtr.h:87
template<typename T>
T const& edm::FwdPtr< T >::operator* ( ) const
inline

Dereference operator.

Definition at line 76 of file FwdPtr.h.

76 { return ptr_.isAvailable() ? ptr_.operator*() : backPtr_.operator*();}
bool isAvailable() const
Definition: Ptr.h:158
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
T const* edm::FwdPtr< T >::operator-> ( ) const
inline

Member dereference operator.

Definition at line 80 of file FwdPtr.h.

80 { return ptr_.isAvailable() ? ptr_.operator->() : backPtr_.operator->();}
bool isAvailable() const
Definition: Ptr.h:158
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
void const* edm::FwdPtr< T >::product ( ) const
inline

Definition at line 118 of file FwdPtr.h.

118 {return 0;}
template<typename T>
EDProductGetter const* edm::FwdPtr< T >::productGetter ( ) const
inline

Accessor for product getter.

Definition at line 106 of file FwdPtr.h.

106  {
107  if (ptr_.productGetter()) return ptr_.productGetter();
108  else return backPtr_.productGetter();
109  }
EDProductGetter const * productGetter() const
Accessor for product getter.
Definition: Ptr.h:167
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128
template<typename T>
Ptr<value_type> const& edm::FwdPtr< T >::ptr ( ) const
inline

Definition at line 120 of file FwdPtr.h.

Referenced by TopProjectorFwdPtrOverlap< Top, Bottom >::operator()().

120 { return ptr_;}
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
template<typename T>
RefCore const& edm::FwdPtr< T >::refCore ( ) const
inline

Definition at line 115 of file FwdPtr.h.

115 {return ptr_.isNonnull() ? ptr_.refCore() : backPtr_.refCore() ;}
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:152
RefCore const & refCore() const
Definition: Ptr.h:173
Ptr< value_type > ptr_
Definition: FwdPtr.h:127
Ptr< value_type > backPtr_
Definition: FwdPtr.h:128

Friends And Related Function Documentation

template<typename T>
friend class FwdPtrVectorBase
friend

Definition at line 43 of file FwdPtr.h.

Member Data Documentation

template<typename T>
Ptr<value_type> edm::FwdPtr< T >::backPtr_
private
template<typename T>
Ptr<value_type> edm::FwdPtr< T >::ptr_
private