1 #ifndef DataFormats_Common_IndirectHolder_h
2 #define DataFormats_Common_IndirectHolder_h
8 #include "boost/shared_ptr.hpp"
38 virtual T const*
getPtr()
const;
40 virtual size_t key()
const;
45 virtual std::auto_ptr<RefHolderBase>
holder()
const;
50 virtual void const *
product()
const;
105 template <
typename T>
112 template <
typename T>
116 return helper_->
template getPtr<T>();
119 template <
typename T>
123 return helper_->
id();
126 template <
typename T>
130 return helper_->key();
133 template <
typename T>
136 return helper_->productGetter();
139 template <
typename T>
142 return helper_->hasProductCache();
145 template <
typename T>
148 return helper_->product();
151 template <
typename T>
159 template <
typename T>
164 return helper_->fillRefIfMyTypeMatches(fillme, msg);
167 template <
typename T>
169 return std::auto_ptr<RefHolderBase>( helper_->clone() );
173 template <
typename T>
187 namespace reftobase {
188 template <
typename T>
190 std::auto_ptr<RefVectorHolderBase>
p = helper_->makeVectorHolder();
191 boost::shared_ptr<RefVectorHolderBase> sp( p );
195 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)