1 #ifndef Framework_ESProducer_h
2 #define Framework_ESProducer_h
87 namespace eventsetup {
92 template<
typename T,
typename TRecord,
typename TDecorator >
131 template<
typename T,
typename TDecorator >
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&),
158 boost::shared_ptr<eventsetup::Callback<T,TReturn,TRecord, typename eventsetup::DecoratorFromArg<T, TRecord, TArg>::Decorator_t > >
166 static_cast<const TRecord*>(
nullptr),
170 static_cast<const TRecord*>(
nullptr),
196 template<
typename CallbackT,
typename TList,
typename TRecord>
197 void registerProducts(boost::shared_ptr<CallbackT> iCallback,
const TList*,
const TRecord* iRecord,
199 registerProduct(iCallback, static_cast<const typename TList::tail_type*>(
nullptr), iRecord, iLabel);
200 registerProducts(iCallback, static_cast<const typename TList::head_type*>(
nullptr), iRecord, iLabel);
202 template<
typename T,
typename TRecord>
208 template<
typename T,
typename TProduct,
typename TRecord>
215 template<
typename T,
typename TProduct,
typename TRecord,
int IIndex>
217 if(iLabel.
labels_.size() <= IIndex ||
220 "Unnamed Label\nthe index ",
222 " was never assigned a name in the 'setWhatProduced' method");
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="")
const TDecorator & createDecoratorFrom(T *, const TRecord *, const TDecorator &iDec)
void registerProduct(boost::shared_ptr< T > iCallback, const es::L< TProduct, IIndex > *, const TRecord *, const es::Label &iLabel)
ESProducer const & operator=(const ESProducer &)
void registerProducts(boost::shared_ptr< CallbackT > iCallback, const TList *, const TRecord *iRecord, const es::Label &iLabel)
void setWhatProduced(T *iThis, TReturn(T::*iMethod)(const TRecord &), const es::Label &iLabel=es::Label())
void registerProducts(boost::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 registerProduct(boost::shared_ptr< T > iCallback, const TProduct *, const TRecord *, const es::Label &iLabel)
void setWhatProduced(T *iThis, TReturn(T::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel=es::Label())
std::vector< std::string > labels_
void registerFactory(std::auto_ptr< TFactory > iFactory, const std::string &iLabel=std::string())