File indexing completed on 2025-04-30 22:24:10
0001 #ifndef Framework_DummyProvider_h
0002 #define Framework_DummyProvider_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include <memory>
0023
0024
0025 #include "FWCore/Framework/test/DummyRecord.h"
0026 #include "FWCore/Framework/test/DummyData.h"
0027
0028 #include "FWCore/Framework/interface/ESProductResolverTemplate.h"
0029 #include "FWCore/Framework/interface/ESProductResolverProvider.h"
0030 #include "FWCore/Framework/interface/ESModuleProducesInfo.h"
0031
0032
0033 namespace edm::eventsetup::test {
0034 class WorkingDummyResolver : public edm::eventsetup::ESProductResolverTemplate<DummyRecord, DummyData> {
0035 public:
0036 WorkingDummyResolver(const DummyData* iDummy) : data_(iDummy) {}
0037
0038 protected:
0039 const value_type* make(const record_type&, const DataKey&) final { return data_; }
0040 void const* getAfterPrefetchImpl() const final { return data_; }
0041
0042 private:
0043 const DummyData* data_;
0044 };
0045
0046 class DummyESProductResolverProvider : public edm::eventsetup::ESProductResolverProvider {
0047 public:
0048 DummyESProductResolverProvider(const DummyData& iData = DummyData()) : dummy_(iData) { usingRecord<DummyRecord>(); }
0049
0050 void incrementData() { ++dummy_.value_; }
0051
0052 std::vector<eventsetup::ESModuleProducesInfo> producesInfo() const override {
0053 return std::vector<eventsetup::ESModuleProducesInfo>(
0054 1,
0055 eventsetup::ESModuleProducesInfo(
0056 edm::eventsetup::EventSetupRecordKey::makeKey<DummyRecord>(),
0057 edm::eventsetup::DataKey(edm::eventsetup::DataKey::makeTypeTag<DummyData>(), ""),
0058 0));
0059 }
0060
0061 protected:
0062 KeyedResolversVector registerResolvers(const EventSetupRecordKey&, unsigned int ) override {
0063 KeyedResolversVector keyedResolversVector;
0064 edm::eventsetup::DataKey dataKey(edm::eventsetup::DataKey::makeTypeTag<DummyData>(), "");
0065 std::shared_ptr<WorkingDummyResolver> pResolver = std::make_shared<WorkingDummyResolver>(&dummy_);
0066 keyedResolversVector.emplace_back(dataKey, pResolver);
0067 return keyedResolversVector;
0068 }
0069
0070 private:
0071 DummyData dummy_;
0072 };
0073
0074 }
0075 #endif