1 #ifndef DataFormats_Common_IndirectHolder_h
2 #define DataFormats_Common_IndirectHolder_h
37 virtual T const*
getPtr()
const;
39 virtual size_t key()
const;
44 virtual std::auto_ptr<RefHolderBase>
holder()
const;
49 virtual void const *
product()
const;
103 template <
typename T>
110 template <
typename T>
114 return helper_->
template getPtr<T>();
117 template <
typename T>
121 return helper_->
id();
124 template <
typename T>
128 return helper_->key();
131 template <
typename T>
134 return helper_->productGetter();
137 template <
typename T>
140 return helper_->hasProductCache();
143 template <
typename T>
146 return helper_->product();
149 template <
typename T>
157 template <
typename T>
162 return helper_->fillRefIfMyTypeMatches(fillme, msg);
165 template <
typename T>
167 return std::auto_ptr<RefHolderBase>( helper_->clone() );
171 template <
typename T>
185 namespace reftobase {
186 template <
typename T>
188 std::auto_ptr<RefVectorHolderBase>
p = helper_->makeVectorHolder();
189 std::shared_ptr<RefVectorHolderBase> sp( p.release() );
193 template <
typename T>
virtual bool fillRefIfMyTypeMatches(RefHolderBase &fillme, std::string &msg) const
virtual size_t key() const
virtual BaseHolder< T > * clone() const
virtual std::auto_ptr< BaseVectorHolder< T > > makeVectorHolder() const
virtual bool isAvailable() const =0
virtual bool isAvailable() const
virtual EDProductGetter const * productGetter() const
#define CMS_CLASS_VERSION(_version_)
IndirectHolder & operator=(IndirectHolder const &rhs)
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
virtual T const * getPtr() const
virtual std::auto_ptr< RefVectorHolderBase > makeVectorBaseHolder() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
virtual void const * product() const
virtual ~IndirectHolder()
void swap(IndirectHolder &other)
virtual bool hasProductCache() const
virtual ProductID id() const
virtual bool isEqualTo(BaseHolder< T > const &rhs) const
virtual std::auto_ptr< RefHolderBase > holder() const
void swap(BaseHolder< T > &lhs, BaseHolder< T > &rhs)