1 #ifndef DataFormats_Common_FwdRef_h
2 #define DataFormats_Common_FwdRef_h
120 template <
typename C,
132 typedef typename boost::binary_traits<F>::second_argument_type
argument_type;
157 T const*
get()
const {
158 if (
ref_.isAvailable() ) {
180 if (
ref_.productGetter() )
return ref_.productGetter();
181 else return backRef_.productGetter();
213 #include "DataFormats/Common/interface/RefProd.h"
220 template <
typename C,
typename T,
typename F>
224 return ref_.isNonnull() && ref_.isAvailable() ?
230 template <
typename C,
typename T,
typename F>
234 return ref_.isNonnull() && ref_.isAvailable() ?
236 backRef_.operator*();
240 template <
typename C,
typename T,
typename F>
244 return ref_.isNonnull() && ref_.isAvailable() ?
246 backRef_.operator->();
252 template <
typename C,
typename T,
typename F>
257 (lhs.
ref() == rhs.
ref() ) &&
264 template <
typename C,
typename T,
typename F>
269 (lhs == rhs.
ref() ) ||
276 template <
typename C,
typename T,
typename F>
281 (lhs.
ref() == rhs ) ||
288 template <
typename C,
typename T,
typename F>
292 return !(lhs == rhs);
295 template <
typename C,
typename T,
typename F>
299 return !(lhs == rhs);
302 template <
typename C,
typename T,
typename F>
306 return !(lhs == rhs);
311 template <
typename C,
typename T,
typename F>
315 return (lhs.ref() < rhs.ref() );
318 template <
typename C,
typename T,
typename F>
322 return (lhs < rhs.ref() );
325 template <
typename C,
typename T,
typename F>
329 return (lhs.ref() < rhs );
bool operator!=(debugging_allocator< X > const &, debugging_allocator< Y > const &)
#define CMS_CLASS_VERSION(_version_)
bool operator!() const
Checks for null.
bool operator==(debugging_allocator< X > const &, debugging_allocator< Y > const &)
key_type key() const
Accessor for product key.
EDProductGetter const * productGetter() const
Accessor for product getter.
bool isNull() const
Checks for null.
T const * operator->() const
Member dereference operator.
bool hasProductCache() const
bool isNull() const
Checks for null.
bool isNonnull() const
Checks for non-null.
FwdRef()
Default constructor needed for reading from persistent store. Not for direct use. ...
FwdRef(Ref< C, T, F > const &ref, Ref< C, T, F > const &backRef)
General purpose constructor from 2 refs (forward and backward.
bool isTransient() const
Checks if this ref is transient (i.e. not persistable).
Ref< C, T, F > const & backRef() const
Ref< C, T, F > const & ref() const
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
C const * product() const
Accessor for product collection.
boost::remove_cv< typename boost::remove_reference< argument_type >::type >::type key_type
boost::binary_traits< F >::second_argument_type argument_type
ProductID id() const
Accessor for product ID.
T const & operator*() const
Dereference operator.