2 #ifndef DataFormats_Common_Holder_h
3 #define DataFormats_Common_Holder_h
15 template <
class T,
class REF>
16 class Holder :
public BaseHolder<T> {
20 explicit Holder(REF
const& iRef);
24 virtual BaseHolder<T>*
clone()
const;
26 virtual T const*
getPtr()
const;
27 virtual ProductID
id()
const;
28 virtual size_t key()
const;
29 virtual bool isEqualTo(BaseHolder<T>
const& rhs)
const;
33 std::string&
msg)
const;
35 virtual std::auto_ptr<RefHolderBase>
holder()
const {
42 virtual void const *
product()
const;
65 template <
class T,
class REF>
71 template <
class T,
class REF>
77 template <
class T,
class REF>
87 template <
class T,
class REF>
95 template <
class T,
class REF>
100 template <
class T,
class REF>
108 template <
class T,
class REF>
113 return ref_.operator->();
116 template <
class T,
class REF>
124 template <
class T,
class REF>
130 return h && (
getRef() == h->getRef());
135 template <
class T,
class REF>
143 template <
class T,
class REF>
146 return ref_.productGetter();
149 template <
class T,
class REF>
152 return ref_.hasProductCache();
155 template <
class T,
class REF>
158 return ref_.product();
161 template <
class T,
class REF>
164 std::string&
msg)
const
167 bool conversion_worked = (h != 0);
169 if (conversion_worked)
172 msg =
typeid(REF).
name();
174 return conversion_worked;
184 namespace reftobase {
186 template <
typename T,
typename REF>
189 return helper::makeVectorHolder();
192 template <
typename T,
typename REF>
195 return helper::makeVectorBaseHolder();
204 namespace reftobase {
206 template <
class T,
class REF>
helper::MatcherGetRef< C >::ref_type getRef(const Handle< C > &c, size_t k)
virtual EDProductGetter const * productGetter() const
Holder & operator=(Holder const &rhs)
virtual void const * product() const
REF const & getRef() const
virtual size_t key() const
#define CMS_CLASS_VERSION(_version_)
virtual T const * getPtr() const
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
virtual std::auto_ptr< RefHolderBase > holder() const
virtual std::auto_ptr< RefVectorHolderBase > makeVectorBaseHolder() const
virtual BaseHolder< T > * clone() const
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
void setRef(REF const &r)
virtual std::auto_ptr< BaseVectorHolder< T > > makeVectorHolder() const
virtual bool fillRefIfMyTypeMatches(RefHolderBase &fillme, std::string &msg) const
virtual bool hasProductCache() const
virtual bool isEqualTo(BaseHolder< T > const &rhs) const
virtual bool isAvailable() const
void swap(BaseHolder< T > &lhs, BaseHolder< T > &rhs)
virtual ProductID id() const