CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Friends
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value > Class Template Reference

#include <Ref.h>

Public Types

typedef boost::binary_traits< F >::second_argument_type argument_type
 
typedef value_type const element_type
 
typedef refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value finder_type
 
typedef unsigned int key_type
 
typedef std::vector< E > product_type
 for export More...
 
typedef refhelper::ValueTrait< std::vector< E > >::value value_type
 

Public Member Functions

T const * get () const
 Returns C++ pointer to the item. More...
 
bool hasProductCache () const
 Returns true if container referenced by the Ref has been cached. More...
 
ProductID id () const
 Accessor for product ID. More...
 
key_type index () const
 
bool isAvailable () const
 
bool isNonnull () const
 Checks for non-null. More...
 
bool isNull () const
 Checks for null. More...
 
bool isTransient () const
 Checks if this ref is transient (i.e. not persistable). More...
 
key_type key () const
 Accessor for product key. More...
 
bool operator! () const
 Checks for null. More...
 
T const & operator* () const
 Dereference operator. More...
 
T const * operator-> () const
 Member dereference operator. More...
 
EDProductGetter const * productGetter () const
 Accessor for product getter. More...
 
 Ref ()
 Default constructor needed for reading from persistent store. Not for direct use. More...
 
 Ref (Handle< product_type > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from handle. More...
 
 Ref (OrphanHandle< product_type > const &handle, key_type itemKey, bool setNow=true)
 General purpose constructor from orphan handle. More...
 
 Ref (product_type const *product, key_type itemKey, bool setNow=true)
 Constructors for ref to object that is not in an event. More...
 
 Ref (TestHandle< product_type > const &handle, key_type itemKey, bool setNow=true)
 Constructor from test handle. More...
 
 Ref (ProductID const &productID, key_type itemKey, EDProductGetter const *prodGetter)
 
 Ref (ProductID const &iProductID, T const *item, key_type itemKey, product_type const *)
 Constructor for use in the various X::fillView(...) functions. More...
 
 Ref (ProductID const &iProductID, T const *item, key_type itemKey)
 
 Ref (ProductID const &iProductID, T const *item, key_type itemKey, bool transient)
 
 Ref (ProductID const &iId)
 
 Ref (RefProd< product_type > const &refProd, key_type itemKey)
 Constructor from RefProd<C> and key. More...
 
 Ref (RefCore const &iRefCore, key_type const &iKey)
 
RefCore const & refCore () const
 
 ~Ref ()
 Destructor. More...
 

Static Public Member Functions

static short Class_Version ()
 
static key_type invalidKey ()
 

Private Types

typedef refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value F
 
typedef refhelper::ValueTrait< std::vector< E > >::value T
 
typedef refhelper::FindRefVectorUsingAdvance< RefToBaseVector< T > > VBF
 
typedef refhelper::FindRefVectorUsingAdvance< RefVector< std::vector< E >, T, F > > VF
 

Private Member Functions

void checkTypeAtCompileTime (product_type const *)
 

Private Attributes

RefCoreWithIndex product_
 

Friends

class RefVector< RefVector< std::vector< E >, T, F >, T, VBF >
 
class RefVector< RefVector< std::vector< E >, T, F >, T, VF >
 
class RefVector< std::vector< E >, T, F >
 
class RefVectorIterator< std::vector< E >, T, F >
 

Detailed Description

template<typename E>
class edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >

Definition at line 304 of file Ref.h.

Member Typedef Documentation

template<typename E >
typedef boost::binary_traits<F>::second_argument_type edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::argument_type

Definition at line 323 of file Ref.h.

template<typename E >
typedef value_type const edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::element_type

Definition at line 320 of file Ref.h.

template<typename E >
typedef refhelper::FindTrait<std::vector<E>, typename refhelper::ValueTrait<std::vector<E> >::value>::value edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::F
private

Definition at line 307 of file Ref.h.

template<typename E >
typedef refhelper::FindTrait<std::vector<E>, typename refhelper::ValueTrait<std::vector<E> >::value>::value edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::finder_type

Definition at line 322 of file Ref.h.

template<typename E >
typedef unsigned int edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::key_type

Definition at line 324 of file Ref.h.

template<typename E >
typedef std::vector<E> edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::product_type

for export

Definition at line 318 of file Ref.h.

template<typename E >
typedef refhelper::ValueTrait<std::vector<E> >::value edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::T
private

Definition at line 306 of file Ref.h.

template<typename E >
typedef refhelper::ValueTrait<std::vector<E> >::value edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::value_type

Definition at line 319 of file Ref.h.

template<typename E >
typedef refhelper::FindRefVectorUsingAdvance<RefToBaseVector<T> > edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::VBF
private

Definition at line 310 of file Ref.h.

template<typename E >
typedef refhelper::FindRefVectorUsingAdvance<RefVector<std::vector<E>, T, F> > edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::VF
private

Definition at line 309 of file Ref.h.

Constructor & Destructor Documentation

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( )
inline
template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( Handle< product_type > const &  handle,
key_type  itemKey,
bool  setNow = true 
)

General purpose constructor from handle.

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( OrphanHandle< product_type > const &  handle,
key_type  itemKey,
bool  setNow = true 
)

General purpose constructor from orphan handle.

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( product_type const *  product,
key_type  itemKey,
bool  setNow = true 
)

Constructors for ref to object that is not in an event.

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( TestHandle< product_type > const &  handle,
key_type  itemKey,
bool  setNow = true 
)

Constructor from test handle.

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( ProductID const &  productID,
key_type  itemKey,
EDProductGetter const *  prodGetter 
)
inline

Constructor for those users who do not have a product handle, but have a pointer to a product getter (such as the EventPrincipal). prodGetter will ususally be a pointer to the event principal.

Definition at line 354 of file Ref.h.

354  :
355  product_(productID, nullptr, mustBeNonZero(prodGetter, "Ref", productID), false,itemKey) {
356  }
EDProductGetter const * mustBeNonZero(EDProductGetter const *prodGetter, std::string refType, ProductID const &productID)
template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( ProductID const &  iProductID,
T const *  item,
key_type  itemKey,
product_type const *   
)
inline

Constructor for use in the various X::fillView(...) functions.

Definition at line 365 of file Ref.h.

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( ProductID const &  iProductID,
T const *  item,
key_type  itemKey 
)
inline
template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( ProductID const &  iProductID,
T const *  item,
key_type  itemKey,
bool  transient 
)
inline
template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( ProductID const &  iId)
inlineexplicit

Constructor that creates an invalid ("null") Ref that is associated with a given product (denoted by that product's ProductID).

Definition at line 381 of file Ref.h.

References edm::Ref< C, T, F >::Ref().

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( RefProd< product_type > const &  refProd,
key_type  itemKey 
)

Constructor from RefProd<C> and key.

template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::~Ref ( )
inline

Destructor.

Definition at line 389 of file Ref.h.

References edm::Ref< C, T, F >::operator*(), and edm::Ref< C, T, F >::operator->().

389 {}
template<typename E >
edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Ref ( RefCore const &  iRefCore,
key_type const &  iKey 
)
inline

Member Function Documentation

template<typename E >
void edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::checkTypeAtCompileTime ( product_type const *  )
inlineprivate

Definition at line 448 of file Ref.h.

448 {}
template<typename E >
static short edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::Class_Version ( )
inlinestatic

Definition at line 438 of file Ref.h.

441 :
template<typename E >
T const* edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::get ( ) const
inline

Returns C++ pointer to the item.

Definition at line 400 of file Ref.h.

References edm::Ref< C, T, F >::isNull(), and edm::Ref< C, T, F >::operator->().

Referenced by Options.Options::__getitem__(), betterConfigParser.BetterConfigParser::__updateDict(), util.rrapi.RRApi::columns(), rrapi.RRApi::columns(), util.rrapi.RRApi::count(), rrapi.RRApi::count(), rrapi.RRApi::data(), util.rrapi.RRApi::data(), betterConfigParser.BetterConfigParser::getCompares(), betterConfigParser.BetterConfigParser::getGeneral(), betterConfigParser.BetterConfigParser::getResultingSection(), rrapi.RRApi::report(), util.rrapi.RRApi::report(), rrapi.RRApi::reports(), util.rrapi.RRApi::reports(), util.rrapi.RRApi::tables(), rrapi.RRApi::tables(), rrapi.RRApi::tags(), util.rrapi.RRApi::tags(), rrapi.RRApi::templates(), util.rrapi.RRApi::templates(), util.rrapi.RRApi::workspaces(), and rrapi.RRApi::workspaces().

template<typename E >
bool edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::hasProductCache ( ) const
inline
template<typename E >
ProductID edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::id ( ) const
inline
template<typename E >
key_type edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::index ( ) const
inline
template<typename E >
static key_type edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::invalidKey ( )
inlinestatic

C is the type of the collection T is the type of a member the collection

Definition at line 328 of file Ref.h.

328 { return key_traits<key_type>::value; }
static const key_type value
Definition: traits.h:36
template<typename E >
bool edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::isAvailable ( ) const
inline
template<typename E >
bool edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::isNonnull ( ) const
inline
template<typename E >
bool edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::isNull ( ) const
inline
template<typename E >
bool edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::isTransient ( ) const
inline
template<typename E >
key_type edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::key ( ) const
inline
template<typename E >
bool edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::operator! ( ) const
inline
template<typename E >
refhelper::ValueTrait< std::vector< E > >::value const & edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::operator* ( ) const
inline
template<typename E >
refhelper::ValueTrait< std::vector< E > >::value const * edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::operator-> ( ) const
inline
template<typename E >
EDProductGetter const* edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::productGetter ( ) const
inline
template<typename E >
RefCore const& edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::refCore ( ) const
inline

Friends And Related Function Documentation

template<typename E >
friend class RefVector< RefVector< std::vector< E >, T, F >, T, VBF >
friend

Definition at line 314 of file Ref.h.

template<typename E >
friend class RefVector< RefVector< std::vector< E >, T, F >, T, VF >
friend

Definition at line 313 of file Ref.h.

template<typename E >
friend class RefVector< std::vector< E >, T, F >
friend

Definition at line 312 of file Ref.h.

template<typename E >
friend class RefVectorIterator< std::vector< E >, T, F >
friend

Definition at line 311 of file Ref.h.

Member Data Documentation

template<typename E >
RefCoreWithIndex edm::Ref< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value, typename refhelper::FindTrait< std::vector< E >, typename refhelper::ValueTrait< std::vector< E > >::value >::value >::product_
private

Definition at line 450 of file Ref.h.