CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
EventSetupImpl.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_EventSetupImpl_h
2 #define FWCore_Framework_EventSetupImpl_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class: EventSetupImpl
7 //
16 //
17 // Author: Chris Jones
18 // Created: Thu Mar 24 13:50:04 EST 2005
19 //
20 
21 // system include files
22 #include <map>
23 #include <optional>
24 #include <vector>
25 #include "tbb/task_arena.h"
26 
27 // user include files
31 
32 // forward declarations
33 
34 class testEventsetup;
35 
36 namespace edm {
37  class ESInputTag;
38  class ProcessBlockTransitionInfo;
39  class Schedule;
40  class ServiceToken;
41  class WaitingTaskHolder;
42 
43  namespace eventsetup {
44  class EventSetupProvider;
45  class EventSetupRecordImpl;
46  class EventSetupRecordProvider;
47  } // namespace eventsetup
48 
50  public:
52  EventSetupImpl() = delete;
53  EventSetupImpl(EventSetupImpl const&) = delete;
54  EventSetupImpl& operator=(EventSetupImpl const&) = delete;
55 
56  // ---------- const member functions ---------------------
59 
60  std::optional<eventsetup::EventSetupRecordGeneric> find(const eventsetup::EventSetupRecordKey&,
61  unsigned int iTransitionID,
62  ESProxyIndex const* getTokenIndices,
63  ESParentContext const& iParent) const;
64 
66  void fillAvailableRecordKeys(std::vector<eventsetup::EventSetupRecordKey>& oToFill) const;
67 
71 
72  bool validRecord(eventsetup::EventSetupRecordKey const& iKey) const;
73 
74  tbb::task_arena* taskArena CMS_THREAD_SAFE() const { return taskArena_; }
78  friend class ::testEventsetup;
79  friend class ::testEventsetupRecord;
81 
82  protected:
84 
85  private:
86  explicit EventSetupImpl(tbb::task_arena*);
87 
89 
90  void setKeyIters(std::vector<eventsetup::EventSetupRecordKey>::const_iterator const& keysBegin,
91  std::vector<eventsetup::EventSetupRecordKey>::const_iterator const& keysEnd);
92 
93  // ---------- member data --------------------------------
94 
95  std::vector<eventsetup::EventSetupRecordKey>::const_iterator keysBegin_;
96  std::vector<eventsetup::EventSetupRecordKey>::const_iterator keysEnd_;
97  std::vector<eventsetup::EventSetupRecordImpl const*> recordImpls_;
98  tbb::task_arena* taskArena_ = nullptr;
99  };
100 } // namespace edm
101 #endif
EventSetupImpl & operator=(EventSetupImpl const &)=delete
void setKeyIters(std::vector< eventsetup::EventSetupRecordKey >::const_iterator const &keysBegin, std::vector< eventsetup::EventSetupRecordKey >::const_iterator const &keysEnd)
std::vector< eventsetup::EventSetupRecordKey >::const_iterator keysBegin_
std::vector< eventsetup::EventSetupRecordKey >::const_iterator keysEnd_
tbb::task_arena * taskArena() const
void fillAvailableRecordKeys(std::vector< eventsetup::EventSetupRecordKey > &oToFill) const
clears the oToFill vector and then fills it with the keys for all available records ...
#define CMS_THREAD_SAFE
bool validRecord(eventsetup::EventSetupRecordKey const &iKey) const
void addRecordImpl(const eventsetup::EventSetupRecordImpl &iRecord)
std::vector< eventsetup::EventSetupRecordImpl const * > recordImpls_
void insertRecordImpl(const eventsetup::EventSetupRecordKey &, const eventsetup::EventSetupRecordImpl *)
eventsetup::EventSetupRecordImpl const * findImpl(const eventsetup::EventSetupRecordKey &) const
bool recordIsProvidedByAModule(eventsetup::EventSetupRecordKey const &) const
std::optional< eventsetup::EventSetupRecordGeneric > find(const eventsetup::EventSetupRecordKey &, unsigned int iTransitionID, ESProxyIndex const *getTokenIndices, ESParentContext const &iParent) const
tbb::task_arena * taskArena_