1 #ifndef Framework_ESProducer_h 2 #define Framework_ESProducer_h 87 namespace eventsetup {
92 template<
typename T,
typename TRecord,
typename TDecorator >
117 setWhatProduced(iThis , &T::produce, iLabel);
123 setWhatProduced(iThis ,
es::Label(iLabel));
128 setWhatProduced(iThis ,
es::Label(iLabel));
131 template<
typename T,
typename TDecorator >
134 setWhatProduced(iThis , &T::produce, iDec, iLabel);
141 template<
typename T,
typename TReturn,
typename TRecord>
143 TReturn (
T ::* iMethod)(
const TRecord&),
153 template<
typename T,
typename TReturn,
typename TRecord,
typename TArg>
155 TReturn (
T ::* iMethod)(
const TRecord&),
165 static_cast<const TRecord*>(
nullptr),
169 static_cast<const TRecord*>(
nullptr),
195 template<
typename CallbackT,
typename TList,
typename TRecord>
196 void registerProducts(std::shared_ptr<CallbackT> iCallback,
const TList*,
const TRecord* iRecord,
198 registerProduct(iCallback, static_cast<const typename TList::tail_type*>(
nullptr), iRecord, iLabel);
199 registerProducts(iCallback, static_cast<const typename TList::head_type*>(
nullptr), iRecord, iLabel);
201 template<
typename T,
typename TRecord>
207 template<
typename T,
typename TProduct,
typename TRecord>
211 registerFactory(std::make_unique<FactoryType>(iCallback), iLabel.
default_);
214 template<
typename T,
typename TProduct,
typename TRecord,
int IIndex>
216 if(iLabel.
labels_.size() <= IIndex ||
219 "Unnamed Label\nthe index ",
221 " was never assigned a name in the 'setWhatProduced' method");
225 registerFactory(std::make_unique<FactoryType>(iCallback), iLabel.
labels_[IIndex]);
void registerProduct(std::shared_ptr< T > iCallback, const es::L< TProduct, IIndex > *, const TRecord *, const es::Label &iLabel)
static const std::string & def()
void setWhatProduced(T *iThis, const std::string &iLabel)
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
void registerProduct(std::shared_ptr< T > iCallback, const TProduct *, const TRecord *, const es::Label &iLabel)
const TDecorator & createDecoratorFrom(T *, const TRecord *, const TDecorator &iDec)
void setWhatProduced(T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
void registerProducts(std::shared_ptr< T >, const eventsetup::produce::Null *, const TRecord *, const es::Label &)
void setWhatProduced(T *iThis, const char *iLabel)
void setWhatProduced(T *iThis, const TDecorator &iDec, const es::Label &iLabel=es::Label())
void setWhatProduced(T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
void registerProducts(std::shared_ptr< CallbackT > iCallback, const TList *, const TRecord *iRecord, const es::Label &iLabel)
std::vector< std::string > labels_