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;
38 transition_(transition),
40 productInstanceName_(
std::
move(pin)),
50 value_(iItem), token_(
std::
move(iToken)) {}
65 value_(iItem), token_(
std::
move(iToken)) {}
68 value_(iS.value_), token_(iS.token_.
index()) {}
89 void addToRegistry(TypeLabelList::const_iterator
const& iBegin,
90 TypeLabelList::const_iterator
const& iEnd,
94 bool iIsListener=
false);
104 template <
class ProductType>
106 return produces<ProductType, InEvent>(
std::string());
109 template <
class ProductType>
111 return produces<ProductType, InEvent>(
std::move(instanceName));
114 template <
typename ProductType, BranchType B>
119 template <
typename ProductType, BranchType B>
121 TypeID tid(
typeid(ProductType));
126 template <
typename ProductType, Transition B>
131 template <
typename ProductType, Transition B>
133 TypeID tid(
typeid(ProductType));
143 template <BranchType B>
150 template <Transition B>
BranchAliasSetterT< ProductType > produces()
declare what type of product will make and with which optional label
std::vector< bool > const & recordProvenanceList() const
TypeLabelList typeLabelList_
TypeLabelList const & typeLabelList() const
used by the fwk to register the list of products of this module
BranchAliasSetterT< T > & setBranchAlias(std::string alias)
virtual ~ProductRegistryHelper() noexcept(false)
static void addToRegistry(TypeLabelList::const_iterator const &iBegin, TypeLabelList::const_iterator const &iEnd, ModuleDescription const &iDesc, ProductRegistry &iReg, ProductRegistryHelper *iProd, bool iIsListener=false)
BranchAliasSetterT< ProductType > produces(std::string instanceName)
BranchAliasSetterT(TypeLabelItem &iItem, EDPutTokenT< T > iToken)
BranchAliasSetter produces(const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
std::string productInstanceName_
TypeLabelItem(Transition const &transition, TypeID const &tid, std::string pin)
virtual bool hasAbilityToProduceInRuns() const
std::vector< TypeLabelItem > TypeLabelList
BranchAliasSetterT< ProductType > produces(std::string instanceName)
static const std::string B
virtual bool hasAbilityToProduceInLumis() const
BranchAliasSetter(TypeLabelItem &iItem, EDPutToken iToken)
constexpr Transition convertToTransition(BranchType iValue)
BranchAliasSetterT< ProductType > produces()
BranchAliasSetter & setBranchAlias(std::string alias)
BranchAliasSetterT(BranchAliasSetter &&iS)
std::vector< bool > recordProvenanceList_
BranchAliasSetter produces(const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)