1 #ifndef FWCore_Framework_EDConsumerBase_h
2 #define FWCore_Framework_EDConsumerBase_h
43 class ModuleDescription;
44 class ProductHolderIndexHelper;
45 class ProductRegistry;
46 class ConsumesCollector;
79 std::vector<const char*>& oModuleLabels)
const;
83 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
94 template <
typename ProductType, BranchType B=InEvent>
96 TypeToGet tid=TypeToGet::make<ProductType>();
104 template <BranchType B>
109 template <
typename ProductType, BranchType B=InEvent>
111 TypeToGet tid=TypeToGet::make<ProductType>();
116 return mayConsume<InEvent>(id,
tag);
119 template <BranchType B>
124 template <
typename ProductType, BranchType B=InEvent>
126 TypeToGet tid=TypeToGet::make<ProductType>();
127 consumesMany<B>(tid);
131 consumesMany<InEvent>(id);
134 template <BranchType B>
157 bool skipCurrentProcess,
167 unsigned short iDeltaToProductInstance,
168 unsigned short iDeltaToProcessName):
std::vector< ConsumesInfo > consumesInfo() const
ProductHolderIndexAndSkipBit m_index
const EDConsumerBase & operator=(const EDConsumerBase &)=delete
void updateLookup(BranchType iBranchType, ProductHolderIndexHelper const &)
void itemsToGet(BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
void itemsMayGet(BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
void consumesMany(const TypeToGet &id)
void throwTypeMismatch(edm::TypeID const &, EDGetToken) const
LabelPlacement(unsigned int iStartOfModuleLabel, unsigned short iDeltaToProductInstance, unsigned short iDeltaToProcessName)
void throwBadToken(edm::TypeID const &iType, EDGetToken iToken) const
std::vector< ProductHolderIndexAndSkipBit > const & itemsToGetFromEvent() const
ProductHolderIndexAndSkipBit indexFrom(EDGetToken, BranchType, TypeID const &) const
unsigned short m_deltaToProcessName
unsigned int ProductHolderIndex
void throwConsumesCallAfterFrozen(TypeToGet const &, InputTag const &) const
edm::SoATuple< TokenLookupInfo, bool, LabelPlacement, edm::KindOfType > m_tokenInfo
void modulesWhoseProductsAreConsumed(std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
unsigned int recordConsumes(BranchType iBranch, TypeToGet const &iType, edm::InputTag const &iTag, bool iAlwaysGets)
void consumesMany(const TypeToGet &id)
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
unsigned short m_deltaToProductInstance
void throwBranchMismatch(BranchType, EDGetToken) const
EDGetToken mayConsume(const TypeToGet &id, edm::InputTag const &tag)
std::vector< char > m_tokenLabels
void modulesDependentUpon(const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
edm::InputTag const & checkIfEmpty(edm::InputTag const &tag)
EDGetToken consumes(TypeToGet const &id, edm::InputTag const &tag)
bool registeredToConsumeMany(TypeID const &, BranchType) const
virtual ~EDConsumerBase()
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
TokenLookupInfo(edm::TypeID const &iID, ProductHolderIndex iIndex, bool skipCurrentProcess, BranchType iBranch)
bool registeredToConsume(ProductHolderIndex, bool, BranchType) const
std::vector< ProductHolderIndexAndSkipBit > itemsToGetFromEvent_
volatile std::atomic< bool > shutdown_flag false
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
unsigned int m_startOfModuleLabel
EDGetToken consumes(const TypeToGet &id, edm::InputTag const &tag)