CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends
edm::stream::EDProducerBase Class Referenceabstract

#include "FWCore/Framework/interface/stream/EDProducerBase.h"

Inheritance diagram for edm::stream::EDProducerBase:
edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper edm::stream::impl::Accumulator edm::stream::impl::Transformer

Public Types

typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 EDProducerBase ()
 
 EDProducerBase (const EDProducerBase &)=delete
 
ModuleDescription const & moduleDescription () const
 
const EDProducerBaseoperator= (const EDProducerBase &)=delete
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void beginRun (edm::Run const &, edm::EventSetup const &)
 
virtual void beginStream (StreamID)
 
virtual void doAcquire_ (Event const &, EventSetup const &, WaitingTaskWithArenaHolder &)=0
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void endRun (edm::Run const &, edm::EventSetup const &)
 
virtual void endStream ()
 
virtual void produce (Event &, EventSetup const &)=0
 
virtual void registerThinnedAssociations (ProductRegistry const &, ThinnedAssociationsHelper &)
 
void setModuleDescriptionPtr (ModuleDescription const *iDesc)
 
virtual void transformAsync_ (WaitingTaskHolder iTask, std::size_t iIndex, edm::EventForTransformer &iEvent, edm::ActivityRegistry *iAct, ServiceWeakToken const &iToken) const noexcept
 
virtual size_t transformIndex_ (edm::BranchDescription const &iBranch) const noexcept
 
virtual ProductResolverIndex transformPrefetch_ (std::size_t iIndex) const noexcept
 

Private Attributes

std::vector< BranchIDgotBranchIDsFromAcquire_
 
ModuleDescription const * moduleDescriptionPtr_
 
std::vector< BranchIDpreviousParentage_
 
ParentageID previousParentageId_
 

Friends

class EDProducerAdaptorBase
 
class ProducingModuleAdaptorBase< EDProducerBase >
 

Additional Inherited Members

- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: [one line class summary]

Usage: <usage>

Definition at line 46 of file EDProducerBase.h.

Member Typedef Documentation

◆ ModuleType

Definition at line 52 of file EDProducerBase.h.

Constructor & Destructor Documentation

◆ EDProducerBase() [1/2]

EDProducerBase::EDProducerBase ( )

Definition at line 34 of file EDProducerBase.cc.

34 : moduleDescriptionPtr_(nullptr) {}
ModuleDescription const * moduleDescriptionPtr_

◆ EDProducerBase() [2/2]

edm::stream::EDProducerBase::EDProducerBase ( const EDProducerBase )
delete

◆ ~EDProducerBase()

EDProducerBase::~EDProducerBase ( )
override

Definition at line 41 of file EDProducerBase.cc.

41 {}

Member Function Documentation

◆ baseType()

const std::string & EDProducerBase::baseType ( )
static

Definition at line 84 of file EDProducerBase.cc.

References edm::kBaseType().

84 { return kBaseType; }
static std::string const kBaseType("Source")

◆ beginLuminosityBlock()

virtual void edm::stream::EDProducerBase::beginLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
inlineprivatevirtual

Definition at line 69 of file EDProducerBase.h.

69 {}

◆ beginRun()

virtual void edm::stream::EDProducerBase::beginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
inlineprivatevirtual

Definition at line 68 of file EDProducerBase.h.

68 {}

◆ beginStream()

virtual void edm::stream::EDProducerBase::beginStream ( StreamID  )
inlineprivatevirtual

Definition at line 67 of file EDProducerBase.h.

67 {}

◆ doAcquire_()

virtual void edm::stream::EDProducerBase::doAcquire_ ( Event const &  ,
EventSetup const &  ,
WaitingTaskWithArenaHolder  
)
privatepure virtual

◆ endLuminosityBlock()

virtual void edm::stream::EDProducerBase::endLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
inlineprivatevirtual

Definition at line 71 of file EDProducerBase.h.

71 {}

◆ endRun()

virtual void edm::stream::EDProducerBase::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
inlineprivatevirtual

Definition at line 72 of file EDProducerBase.h.

72 {}

◆ endStream()

virtual void edm::stream::EDProducerBase::endStream ( )
inlineprivatevirtual

Definition at line 73 of file EDProducerBase.h.

73 {}

◆ fillDescriptions()

void EDProducerBase::fillDescriptions ( ConfigurationDescriptions descriptions)
static

Definition at line 66 of file EDProducerBase.cc.

References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.

66  {
68  desc.setUnknown();
69  descriptions.addDefault(desc);
70 }

◆ moduleDescription()

ModuleDescription const& edm::stream::EDProducerBase::moduleDescription ( ) const
inline

Definition at line 64 of file EDProducerBase.h.

References moduleDescriptionPtr_.

Referenced by edm::stream::impl::Transformer::extendUpdateLookup().

64 { return *moduleDescriptionPtr_; }
ModuleDescription const * moduleDescriptionPtr_

◆ operator=()

const EDProducerBase& edm::stream::EDProducerBase::operator= ( const EDProducerBase )
delete

◆ prevalidate()

void EDProducerBase::prevalidate ( ConfigurationDescriptions descriptions)
static

Definition at line 80 of file EDProducerBase.cc.

References edm::edmodule_mightGet_config().

80 { edmodule_mightGet_config(iConfig); }
void edmodule_mightGet_config(ConfigurationDescriptions &iDesc)

◆ produce()

virtual void edm::stream::EDProducerBase::produce ( Event ,
EventSetup const &   
)
privatepure virtual

◆ registerThinnedAssociations()

virtual void edm::stream::EDProducerBase::registerThinnedAssociations ( ProductRegistry const &  ,
ThinnedAssociationsHelper  
)
inlineprivatevirtual

Definition at line 75 of file EDProducerBase.h.

75 {}

◆ setModuleDescriptionPtr()

void edm::stream::EDProducerBase::setModuleDescriptionPtr ( ModuleDescription const *  iDesc)
inlineprivate

Definition at line 86 of file EDProducerBase.h.

References moduleDescriptionPtr_.

86 { moduleDescriptionPtr_ = iDesc; }
ModuleDescription const * moduleDescriptionPtr_

◆ transformAsync_()

void EDProducerBase::transformAsync_ ( WaitingTaskHolder  iTask,
std::size_t  iIndex,
edm::EventForTransformer iEvent,
edm::ActivityRegistry iAct,
ServiceWeakToken const &  iToken 
) const
privatevirtualnoexcept

Reimplemented in edm::stream::impl::Transformer.

Definition at line 74 of file EDProducerBase.cc.

78  {}

◆ transformIndex_()

size_t EDProducerBase::transformIndex_ ( edm::BranchDescription const &  iBranch) const
privatevirtualnoexcept

Reimplemented in edm::stream::impl::Transformer.

Definition at line 72 of file EDProducerBase.cc.

72 { return -1; }

◆ transformPrefetch_()

edm::ProductResolverIndex EDProducerBase::transformPrefetch_ ( std::size_t  iIndex) const
privatevirtualnoexcept

Reimplemented in edm::stream::impl::Transformer.

Definition at line 73 of file EDProducerBase.cc.

73 { return 0; }

Friends And Related Function Documentation

◆ EDProducerAdaptorBase

friend class EDProducerAdaptorBase
friend

Definition at line 48 of file EDProducerBase.h.

◆ ProducingModuleAdaptorBase< EDProducerBase >

Definition at line 49 of file EDProducerBase.h.

Member Data Documentation

◆ gotBranchIDsFromAcquire_

std::vector<BranchID> edm::stream::EDProducerBase::gotBranchIDsFromAcquire_
private

Definition at line 89 of file EDProducerBase.h.

◆ moduleDescriptionPtr_

ModuleDescription const* edm::stream::EDProducerBase::moduleDescriptionPtr_
private

Definition at line 91 of file EDProducerBase.h.

Referenced by moduleDescription(), and setModuleDescriptionPtr().

◆ previousParentage_

std::vector<BranchID> edm::stream::EDProducerBase::previousParentage_
private

Definition at line 88 of file EDProducerBase.h.

◆ previousParentageId_

ParentageID edm::stream::EDProducerBase::previousParentageId_
private

Definition at line 90 of file EDProducerBase.h.