#include <ESProxyFactoryProducer.h>
Definition at line 76 of file ESProxyFactoryProducer.h.
ESProxyFactoryProducer::ESProxyFactoryProducer |
( |
| ) |
|
Definition at line 30 of file ESProxyFactoryProducer.cc.
std::multimap< 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 97 of file ESProxyFactoryProducer.h.
References eostools::move(), AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.
98 std::unique_ptr<eventsetup::ProxyFactoryBase>
temp(iFactory.release());
virtual void registerFactoryWithKey(const EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
Reimplemented in edm::ESProducerLooper.
Definition at line 48 of file ESProxyFactoryProducer.cc.
References Exception, beamvalidation::exit(), info(), eostools::move(), FastTimerService_cff::range, record2Factories_, groupFilesInBlocks::temp, and edm::eventsetup::DataProxyProvider::usingRecordWithKey().
Referenced by edm::ESProducerLooper::registerFactoryWithKey().
51 if (
nullptr == iFactory.get()) {
52 assert(
false &&
"Factor pointer was null");
58 std::shared_ptr<ProxyFactoryBase>
temp(iFactory.release());
62 std::pair<Record2Factories::const_iterator, Record2Factories::const_iterator>
range =
65 std::find_if(range.first, range.second, [&
info](
const auto& r2f) { return r2f.second.key_ == info.key_; })) {
67 <<
"Producer has been asked to produce " <<
info.key_.type().name() <<
" \"" <<
info.key_.name().value()
68 <<
"\" multiple times.\n Please modify the code.";
void usingRecordWithKey(const EventSetupRecordKey &key)
Container::value_type value_type
std::multimap< EventSetupRecordKey, eventsetup::FactoryInfo > record2Factories_
Implements edm::eventsetup::DataProxyProvider.
Definition at line 34 of file ESProxyFactoryProducer.cc.
References FastTimerService_cff::range, and record2Factories_.
37 using Iterator = Record2Factories::iterator;
39 for (
Iterator it = range.first; it != range.second; ++it) {
40 std::shared_ptr<DataProxy> proxy(it->second.factory_->makeProxy(iovIndex).release());
41 if (
nullptr != proxy.get()) {
42 keyedProxiesVector.emplace_back((*it).second.key_, proxy);
45 return keyedProxiesVector;
std::multimap< EventSetupRecordKey, eventsetup::FactoryInfo > record2Factories_
std::vector< std::pair< DataKey, std::shared_ptr< DataProxy >>> KeyedProxiesVector