CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DataProxy.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_DataProxy_h
2 #define FWCore_Framework_DataProxy_h
3 // -*- C++ -*-
4 //
5 // Package: Framework
6 // Class : DataProxy
7 //
17 //
18 // Author: Chris Jones
19 // Created: Thu Mar 31 12:43:01 EST 2005
20 //
21 
22 // system include files
23 
24 // user include files
25 
26 // forward declarations
27 namespace edm {
28  namespace eventsetup {
29  struct ComponentDescription;
30  class DataKey;
31  class EventSetupRecord;
32 
33  class DataProxy {
34 
35  public:
36  DataProxy();
37  virtual ~DataProxy();
38 
39  // ---------- const member functions ---------------------
40  bool cacheIsValid() const { return cacheIsValid_; }
41 
42  void doGet(EventSetupRecord const& iRecord, DataKey const& iKey, bool iTransiently) const;
43  void const* get(EventSetupRecord const&, DataKey const& iKey, bool iTransiently) const;
44 
47  return description_;
48  }
49  // ---------- static member functions --------------------
50 
51  // ---------- member functions ---------------------------
52  void invalidate() {
55  }
56 
57  void resetIfTransient();
58 
60  description_ = iDesc;
61  }
62  protected:
69  virtual void const* getImpl(EventSetupRecord const&, DataKey const& iKey) =0;
70 
74  virtual void invalidateCache() = 0;
75 
81  virtual void invalidateTransientCache();
82 
83  void clearCacheIsValid();
84  private:
85  DataProxy(DataProxy const&); // stop default
86 
87  DataProxy const& operator=(DataProxy const&); // stop default
88  void setCacheIsValidAndAccessType(bool iTransientAccessOnly) const;
89 
90  // ---------- member data --------------------------------
91  mutable void const* cache_;
92  mutable bool cacheIsValid_;
95  };
96  }
97 }
98 #endif
void setCacheIsValidAndAccessType(bool iTransientAccessOnly) const
Definition: DataProxy.cc:73
bool cacheIsValid() const
Definition: DataProxy.h:40
virtual void invalidateTransientCache()
Definition: DataProxy.cc:95
void setProviderDescription(ComponentDescription const *iDesc)
Definition: DataProxy.h:59
void doGet(EventSetupRecord const &iRecord, DataKey const &iKey, bool iTransiently) const
Definition: DataProxy.cc:126
DataProxy const & operator=(DataProxy const &)
ComponentDescription const * description_
Definition: DataProxy.h:94
ComponentDescription const * providerDescription() const
returns the description of the DataProxyProvider which owns this Proxy
Definition: DataProxy.h:46
virtual void invalidateCache()=0
virtual void const * getImpl(EventSetupRecord const &, DataKey const &iKey)=0