CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions
edm::EDProductGetter Class Referenceabstract

#include <EDProductGetter.h>

Inheritance diagram for edm::EDProductGetter:
BareRootProductGetter edm::Principal edm::StreamerInputSource::EventPrincipalHolder fwlite::internal::MultiProductGetter fwlite::internal::ProductGetter edm::EventPrincipal edm::LuminosityBlockPrincipal edm::ProcessBlockPrincipal edm::RunPrincipal

Public Member Functions

 EDProductGetter ()
 
 EDProductGetter (EDProductGetter const &)=delete
 
virtual WrapperBase const * getIt (ProductID const &) const =0
 
virtual OptionalThinnedKey getThinnedKeyFrom (ProductID const &parent, unsigned int key, ProductID const &thinned) const =0
 
virtual std::optional
< std::tuple< WrapperBase
const *, unsigned int > > 
getThinnedProduct (ProductID const &, unsigned int key) const =0
 
virtual void getThinnedProducts (ProductID const &pid, std::vector< WrapperBase const * > &foundContainers, std::vector< unsigned int > &keys) const =0
 
EDProductGetter const & operator= (EDProductGetter const &)=delete
 
unsigned int transitionIndex () const
 
virtual ~EDProductGetter ()
 

Static Public Member Functions

static void assignEDProductGetter (EDProductGetter const *&)
 
static EDProductGetter const * switchProductGetter (EDProductGetter const *)
 These can only be used internally by the framework. More...
 

Private Member Functions

virtual unsigned int transitionIndex_ () const =0
 

Detailed Description

Definition at line 41 of file EDProductGetter.h.

Constructor & Destructor Documentation

EDProductGetter::EDProductGetter ( )

Definition at line 32 of file EDProductGetter.cc.

32 {}
EDProductGetter::~EDProductGetter ( )
virtual

Definition at line 39 of file EDProductGetter.cc.

39 {}
edm::EDProductGetter::EDProductGetter ( EDProductGetter const &  )
delete

Member Function Documentation

void EDProductGetter::assignEDProductGetter ( EDProductGetter const *&  iGetter)
static

Definition at line 84 of file EDProductGetter.cc.

References edm::s_productGetter.

84  {
85  //std::cout <<"assign "<<s_productGetter<<std::endl;
86 
87  iGetter = s_productGetter;
88  }
thread_local EDProductGetter const * s_productGetter
virtual WrapperBase const* edm::EDProductGetter::getIt ( ProductID const &  ) const
pure virtual
virtual OptionalThinnedKey edm::EDProductGetter::getThinnedKeyFrom ( ProductID const &  parent,
unsigned int  key,
ProductID const &  thinned 
) const
pure virtual
virtual std::optional<std::tuple<WrapperBase const*, unsigned int> > edm::EDProductGetter::getThinnedProduct ( ProductID const &  ,
unsigned int  key 
) const
pure virtual
virtual void edm::EDProductGetter::getThinnedProducts ( ProductID const &  pid,
std::vector< WrapperBase const * > &  foundContainers,
std::vector< unsigned int > &  keys 
) const
pure virtual
EDProductGetter const& edm::EDProductGetter::operator= ( EDProductGetter const &  )
delete
EDProductGetter const * EDProductGetter::switchProductGetter ( EDProductGetter const *  iNew)
static

These can only be used internally by the framework.

Definition at line 78 of file EDProductGetter.cc.

References edm::s_productGetter.

Referenced by edm::setRefCoreStreamer(), and fwlite::setRefStreamer().

78  {
79  //std::cout <<"switch from "<<s_productGetter<<" to "<<iNew<<std::endl;
80  EDProductGetter const* old = s_productGetter;
81  s_productGetter = iNew;
82  return old;
83  }
thread_local EDProductGetter const * s_productGetter
unsigned int edm::EDProductGetter::transitionIndex ( ) const
inline

Definition at line 94 of file EDProductGetter.h.

References transitionIndex_().

Referenced by edm::RootDelayedReader::getProduct_(), and edm::RootFile::readCurrentEvent().

94 { return transitionIndex_(); }
virtual unsigned int transitionIndex_() const =0
virtual unsigned int edm::EDProductGetter::transitionIndex_ ( ) const
privatepure virtual