CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Friends
DataFormats_MuonReco::dictionary::edm::RefCore Class Reference

#include <classes.h>

Public Member Functions

WrapperBase const * getProductPtr (std::type_info const &type, EDProductGetter const *prodGetter) const
 
WrapperBase const * getThinnedProductPtr (std::type_info const &type, unsigned int &thinnedKey, EDProductGetter const *prodGetter) const
 
ProductID id () const
 
bool isAvailable () const
 
bool isNonnull () const
 
bool isNull () const
 
bool isThinnedAvailable (unsigned int thinnedKey, EDProductGetter const *prodGetter) const
 
bool isTransient () const
 
int isTransientInt () const
 
void nullPointerForTransientException (std::type_info const &type) const
 
bool operator! () const
 
RefCoreoperator= (RefCore const &)
 
RefCoreoperator= (RefCore &&)=default
 
EDProductGetter const * productGetter () const
 
void productNotFoundException (std::type_info const &type) const
 
void const * productPtr () const
 
void pushBackItem (RefCore const &productToBeInserted, bool checkPointer)
 
void pushBackRefItem (RefCore const &productToBeInserted)
 
 RefCore ()
 
 RefCore (ProductID const &theId, void const *prodPtr, EDProductGetter const *prodGetter, bool transient)
 
 RefCore (RefCore const &)
 
 RefCore (RefCore &&iOther)
 
void setProductGetter (EDProductGetter const *prodGetter) const
 
void setProductPtr (void const *prodPtr) const
 
void swap (RefCore &)
 
WrapperBase const * tryToGetProductPtr (std::type_info const &type, EDProductGetter const *prodGetter) const
 
bool tryToSetProductPtrForFirstTime (void const *prodPtr) const
 
void wrongTypeException (std::type_info const &expectedType, std::type_info const &actualType) const
 

Private Member Functions

bool cachePtrIsInvalid () const
 
 RefCore (void const *iCache, ProcessIndex iProcessIndex, ProductIndex iProductIndex)
 
void setCacheIsProductGetter (EDProductGetter const *iGetter) const
 
void setCacheIsProductPtr (const void *iItem) const
 
void setId (ProductID const &iId)
 
void setTransient ()
 

Private Attributes

std::atomic< void const * > cachePtr_
 
ProcessIndex processIndex_
 
ProductIndex productIndex_
 

Friends

class RefCoreWithIndex
 

Detailed Description

Definition at line 23 of file classes.h.

Constructor & Destructor Documentation

DataFormats_MuonReco::dictionary::edm::RefCore::RefCore ( )
inline

Definition at line 28 of file classes.h.

36 {
DataFormats_MuonReco::dictionary::edm::RefCore::RefCore ( ProductID const &  theId,
void const *  prodPtr,
EDProductGetter const *  prodGetter,
bool  transient 
)
DataFormats_MuonReco::dictionary::edm::RefCore::RefCore ( RefCore const &  )
DataFormats_MuonReco::dictionary::edm::RefCore::RefCore ( RefCore &&  iOther)
inline

Definition at line 37 of file classes.h.

37  {
38  std::vector<reco::Muon> v1;
std::vector< reco::Muon > v1
Definition: classes.h:38
DataFormats_MuonReco::dictionary::edm::RefCore::RefCore ( void const *  iCache,
ProcessIndex  iProcessIndex,
ProductIndex  iProductIndex 
)
inlineprivate

Definition at line 108 of file classes.h.

Member Function Documentation

bool DataFormats_MuonReco::dictionary::edm::RefCore::cachePtrIsInvalid ( ) const
inlineprivate

Definition at line 115 of file classes.h.

WrapperBase const* DataFormats_MuonReco::dictionary::edm::RefCore::getProductPtr ( std::type_info const &  type,
EDProductGetter const *  prodGetter 
) const
WrapperBase const* DataFormats_MuonReco::dictionary::edm::RefCore::getThinnedProductPtr ( std::type_info const &  type,
unsigned int &  thinnedKey,
EDProductGetter const *  prodGetter 
) const
ProductID DataFormats_MuonReco::dictionary::edm::RefCore::id ( ) const
inline

Definition at line 42 of file classes.h.

bool DataFormats_MuonReco::dictionary::edm::RefCore::isAvailable ( ) const
bool DataFormats_MuonReco::dictionary::edm::RefCore::isNonnull ( ) const
inline

Definition at line 67 of file classes.h.

bool DataFormats_MuonReco::dictionary::edm::RefCore::isNull ( ) const
inline

Definition at line 64 of file classes.h.

bool DataFormats_MuonReco::dictionary::edm::RefCore::isThinnedAvailable ( unsigned int  thinnedKey,
EDProductGetter const *  prodGetter 
) const
bool DataFormats_MuonReco::dictionary::edm::RefCore::isTransient ( ) const
inline

Definition at line 99 of file classes.h.

int DataFormats_MuonReco::dictionary::edm::RefCore::isTransientInt ( ) const
inline

Definition at line 101 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::nullPointerForTransientException ( std::type_info const &  type) const
bool DataFormats_MuonReco::dictionary::edm::RefCore::operator! ( ) const
inline

Definition at line 70 of file classes.h.

RefCore& DataFormats_MuonReco::dictionary::edm::RefCore::operator= ( RefCore const &  )
RefCore& DataFormats_MuonReco::dictionary::edm::RefCore::operator= ( RefCore &&  )
default
EDProductGetter const* DataFormats_MuonReco::dictionary::edm::RefCore::productGetter ( ) const
inline

Definition at line 77 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::productNotFoundException ( std::type_info const &  type) const
void const* DataFormats_MuonReco::dictionary::edm::RefCore::productPtr ( ) const
inline

If productPtr is not 0 then productGetter will be 0 since only one is available at a time

Definition at line 45 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::pushBackItem ( RefCore const &  productToBeInserted,
bool  checkPointer 
)
void DataFormats_MuonReco::dictionary::edm::RefCore::pushBackRefItem ( RefCore const &  productToBeInserted)
void DataFormats_MuonReco::dictionary::edm::RefCore::setCacheIsProductGetter ( EDProductGetter const *  iGetter) const
inlineprivate

Definition at line 113 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::setCacheIsProductPtr ( const void *  iItem) const
inlineprivate

Definition at line 112 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::setId ( ProductID const &  iId)
private
void DataFormats_MuonReco::dictionary::edm::RefCore::setProductGetter ( EDProductGetter const *  prodGetter) const
void DataFormats_MuonReco::dictionary::edm::RefCore::setProductPtr ( void const *  prodPtr) const
inline

This function is 'const' even though it changes an internal value becuase it is meant to be used as a way to store in a thread-safe way a cache of a value. This allows classes which use the RefCore to not have to declare it 'mutable'

Definition at line 51 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::setTransient ( )
inlineprivate

Definition at line 111 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::swap ( RefCore other)
inline

Definition at line 157 of file classes.h.

WrapperBase const* DataFormats_MuonReco::dictionary::edm::RefCore::tryToGetProductPtr ( std::type_info const &  type,
EDProductGetter const *  prodGetter 
) const
bool DataFormats_MuonReco::dictionary::edm::RefCore::tryToSetProductPtrForFirstTime ( void const *  prodPtr) const
inline

This function is 'const' even though it changes an internal value becuase it is meant to be used as a way to store in a thread-safe way a cache of a value. This allows classes which use the RefCore to not have to declare it 'mutable'

Definition at line 59 of file classes.h.

void DataFormats_MuonReco::dictionary::edm::RefCore::wrongTypeException ( std::type_info const &  expectedType,
std::type_info const &  actualType 
) const

Friends And Related Function Documentation

friend class RefCoreWithIndex
friend

Definition at line 26 of file classes.h.

Member Data Documentation

std::atomic<void const*> DataFormats_MuonReco::dictionary::edm::RefCore::cachePtr_
mutableprivate

Definition at line 122 of file classes.h.

ProcessIndex DataFormats_MuonReco::dictionary::edm::RefCore::processIndex_
private

Definition at line 131 of file classes.h.

ProductIndex DataFormats_MuonReco::dictionary::edm::RefCore::productIndex_
private

Definition at line 132 of file classes.h.