1 #ifndef FWCore_Framework_EDConsumerBase_h
2 #define FWCore_Framework_EDConsumerBase_h
43 class ModuleDescription;
44 class ProductHolderIndexHelper;
45 class ProductRegistry;
46 class ConsumesCollector;
81 std::vector<char const*>& oModuleLabels)
const;
85 std::map<std::string, ModuleDescription const*>
const& labelsToDesc,
96 template <
typename ProductType, BranchType B=InEvent>
98 TypeToGet tid=TypeToGet::make<ProductType>();
106 template <BranchType B>
111 template <
typename ProductType, BranchType B=InEvent>
113 TypeToGet tid=TypeToGet::make<ProductType>();
118 return mayConsume<InEvent>(id,
tag);
121 template <BranchType B>
126 template <
typename ProductType, BranchType B=InEvent>
128 TypeToGet tid=TypeToGet::make<ProductType>();
129 consumesMany<B>(tid);
133 consumesMany<InEvent>(id);
136 template <BranchType B>
159 bool skipCurrentProcess,
169 unsigned short iDeltaToProductInstance,
170 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
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
void modulesDependentUpon(std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) 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)