Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-05-11 03:34:18

0001 #ifndef FWCore_TestProcessor_TestESProductResolver_h
0002 #define FWCore_TestProcessor_TestESProductResolver_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     FWCore/TestProcessor
0006 // Class  :     TestESProductResolver
0007 //
0008 /**\class TestESProductResolver TestESProductResolver.h "TestESProductResolver.h"
0009 
0010  Description: [one line class summary]
0011 
0012  Usage:
0013     <usage>
0014 
0015 */
0016 //
0017 // Original Author:  root
0018 //         Created:  Tue, 08 May 2018 18:32:38 GMT
0019 //
0020 
0021 // system include files
0022 #include <memory>
0023 
0024 // user include files
0025 #include "FWCore/Framework/interface/ESProductResolver.h"
0026 #include "FWCore/Concurrency/interface/WaitingTaskHolder.h"
0027 
0028 // forward declarations
0029 
0030 namespace edm {
0031   namespace test {
0032 
0033     template <typename T>
0034     class TestESProductResolver : public eventsetup::ESProductResolver {
0035     public:
0036       TestESProductResolver() {}
0037 
0038       void setData(std::unique_ptr<T> iData) { data_ = std::move(iData); }
0039 
0040       void prefetchAsyncImpl(WaitingTaskHolder,
0041                              eventsetup::EventSetupRecordImpl const&,
0042                              eventsetup::DataKey const&,
0043                              EventSetupImpl const*,
0044                              ServiceToken const&,
0045                              ESParentContext const&) noexcept final {
0046         return;
0047       }
0048 
0049       void invalidateCache() final { data_.reset(); }
0050 
0051       void const* getAfterPrefetchImpl() const final { return data_.get(); }
0052 
0053     private:
0054       std::unique_ptr<T> data_;
0055     };
0056   }  // namespace test
0057 
0058 }  // namespace edm
0059 
0060 #endif