1 #ifndef Framework_ESProducer_h 2 #define Framework_ESProducer_h 87 namespace eventsetup {
92 template<
typename T,
typename TRecord,
typename TDecorator >
116 setWhatProduced(iThis , &T::produce, iLabel);
121 setWhatProduced(iThis ,
es::Label(iLabel));
125 setWhatProduced(iThis ,
es::Label(iLabel));
128 template<
typename T,
typename TDecorator >
130 setWhatProduced(iThis , &T::produce, iDec, iLabel);
137 template<
typename T,
typename TReturn,
typename TRecord>
139 TReturn (
T ::* iMethod)(
const TRecord&),
149 template<
typename T,
typename TReturn,
typename TRecord,
typename TArg>
151 TReturn (
T ::* iMethod)(
const TRecord&),
160 static_cast<const TRecord*>(
nullptr),
164 static_cast<const TRecord*>(
nullptr),
174 template<
typename CallbackT,
typename TList,
typename TRecord>
175 void registerProducts(std::shared_ptr<CallbackT> iCallback,
const TList*,
const TRecord* iRecord,
177 registerProduct(iCallback, static_cast<const typename TList::tail_type*>(
nullptr), iRecord, iLabel);
178 registerProducts(iCallback, static_cast<const typename TList::head_type*>(
nullptr), iRecord, iLabel);
180 template<
typename T,
typename TRecord>
186 template<
typename T,
typename TProduct,
typename TRecord>
190 registerFactory(std::make_unique<FactoryType>(iCallback), iLabel.
default_);
193 template<
typename T,
typename TProduct,
typename TRecord,
int IIndex>
195 if(iLabel.
labels_.size() <= IIndex ||
198 "Unnamed Label\nthe index ",
200 " was never assigned a name in the 'setWhatProduced' method");
204 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_