#include <ESProxyFactoryProducer.h>
Definition at line 79 of file ESProxyFactoryProducer.h.
ESProxyFactoryProducer::ESProxyFactoryProducer |
( |
| ) |
|
Definition at line 39 of file ESProxyFactoryProducer.cc.
std::multimap< eventsetup::EventSetupRecordKey, eventsetup::FactoryInfo > record2Factories_
ESProxyFactoryProducer::~ESProxyFactoryProducer |
( |
| ) |
|
|
overridenoexcept |
template<class TFactory >
void edm::ESProxyFactoryProducer::registerFactory |
( |
std::unique_ptr< TFactory > |
iFactory, |
|
|
const std::string & |
iLabel = std::string() |
|
) |
| |
|
inlineprotected |
- Parameters
-
iFactory | unique_ptr holding a new instance of a Factory |
iLabel | extra string label used to get data (optional) Producer takes ownership of the Factory and uses it create the appropriate Proxy which is then registered with the EventSetup. If used, this method should be called in inheriting class' constructor. |
Definition at line 107 of file ESProxyFactoryProducer.h.
References eostools::move(), AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.
109 std::unique_ptr<eventsetup::ProxyFactoryBase>
temp(iFactory.release());
111 eventsetup::EventSetupRecordKey::makeKey<typename TFactory::record_type>(),
virtual void registerFactoryWithKey(const eventsetup::EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
Reimplemented in edm::ESProducerLooper.
Definition at line 84 of file ESProxyFactoryProducer.cc.
References Exception, cmsRelvalreport::exit, info(), eostools::move(), record2Factories_, groupFilesInBlocks::temp, and edm::eventsetup::DataProxyProvider::usingRecordWithKey().
Referenced by edm::ESProducerLooper::registerFactoryWithKey().
88 if(
nullptr == iFactory.get()) {
89 assert(
false &&
"Factor pointer was null");
95 std::shared_ptr<ProxyFactoryBase>
temp(iFactory.release());
100 std::pair<Record2Factories::const_iterator,Record2Factories::const_iterator> range =
102 if(range.second != std::find_if(range.first,range.second,
103 [&
info](
const auto& r2f) {
104 return r2f.second.key_ == info.key_;
107 throw cms::Exception(
"IdenticalProducts")<<
"Producer has been asked to produce "<<
info.key_.type().name()
108 <<
" \""<<
info.key_.name().value()<<
"\" multiple times.\n Please modify the code.";
void usingRecordWithKey(const EventSetupRecordKey &)
std::multimap< eventsetup::EventSetupRecordKey, eventsetup::FactoryInfo > record2Factories_
Container::value_type value_type