Go to the documentation of this file. 1 #ifndef FWCore_Framework_ProductRegistryHelper_h
2 #define FWCore_Framework_ProductRegistryHelper_h
16 #include <type_traits>
19 class ModuleDescription;
20 class ProductRegistry;
21 struct DoNotRecordParents;
93 static void addToRegistry(TypeLabelList::const_iterator
const& iBegin,
94 TypeLabelList::const_iterator
const& iEnd,
98 bool iIsListener =
false);
107 template <
class ProductType>
109 return produces<ProductType, InEvent>(
std::string());
112 template <
class ProductType>
117 template <
typename ProductType, BranchType B>
122 template <
typename ProductType, BranchType B>
124 TypeID tid(
typeid(ProductType));
129 template <
typename ProductType, Transition B>
134 template <
typename ProductType, Transition B>
136 TypeID tid(
typeid(ProductType));
143 bool recordProvenance =
true) {
147 template <BranchType B>
150 bool recordProvenance =
true) {
156 template <Transition B>
159 bool recordProvenance =
true) {
BranchAliasSetterT(BranchAliasSetter &&iS)
BranchAliasSetter produces(const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
virtual bool hasAbilityToProduceInEndRuns() const
virtual bool hasAbilityToProduceInBeginRuns() const
BranchAliasSetter & setBranchAlias(std::string alias)
std::string productInstanceName_
BranchAliasSetterT< ProductType > produces(std::string instanceName)
virtual bool hasAbilityToProduceInBeginLumis() const
std::vector< bool > recordProvenanceList_
virtual bool hasAbilityToProduceInEndProcessBlocks() const
virtual bool hasAbilityToProduceInBeginProcessBlocks() const
virtual ~ProductRegistryHelper() noexcept(false)
BranchAliasSetter(TypeLabelItem &iItem, EDPutToken iToken)
BranchAliasSetter produces(const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
virtual bool hasAbilityToProduceInEndLumis() const
std::vector< bool > const & recordProvenanceList() const
TypeLabelList const & typeLabelList() const
used by the fwk to register the list of products of this module
TypeLabelItem(Transition const &transition, TypeID const &tid, std::string pin)
TypeLabelList typeLabelList_
std::vector< TypeLabelItem > TypeLabelList
BranchAliasSetterT< ProductType > produces()
static void addToRegistry(TypeLabelList::const_iterator const &iBegin, TypeLabelList::const_iterator const &iEnd, ModuleDescription const &iDesc, ProductRegistry &iReg, ProductRegistryHelper *iProd, bool iIsListener=false)
constexpr Transition convertToTransition(BranchType iValue)
BranchAliasSetterT< T > & setBranchAlias(std::string alias)
static const std::string B
BranchAliasSetterT< ProductType > produces()
declare what type of product will make and with which optional label
BranchAliasSetter & setSwitchAlias(std::string moduleLabel)
BranchAliasSetterT< ProductType > produces(std::string instanceName)
BranchAliasSetterT(TypeLabelItem &iItem, EDPutTokenT< T > iToken)