File indexing completed on 2024-04-06 12:12:00
0001 #ifndef FWCore_Framework_CacheHandle_h
0002 #define FWCore_Framework_CacheHandle_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "FWCore/Utilities/interface/Exception.h"
0011
0012 namespace edm {
0013
0014 template <typename T>
0015 class CacheHandle {
0016 public:
0017 CacheHandle() : data_(nullptr) {}
0018 CacheHandle(T const* data) : data_(data) {}
0019
0020 T const* get() const {
0021 if (!isValid()) {
0022 throw cms::Exception("InvalidCache") << "CacheHandle is invalid";
0023 }
0024 return data_;
0025 }
0026 T const* operator->() const { return get(); }
0027 T const& operator*() const { return *get(); }
0028
0029 bool isValid() const { return data_ != nullptr; }
0030
0031 private:
0032 T const* data_;
0033 };
0034 }
0035 #endif