#include <Wrapper.h>
Public Types | |
typedef T | value_type |
typedef T | wrapped_type |
Public Member Functions | |
T const * | operator-> () const |
T const * | product () const |
Wrapper () | |
Wrapper (std::auto_ptr< T > ptr) | |
Wrapper (T *) | |
virtual | ~Wrapper () |
Static Public Member Functions | |
static std::type_info const & | productTypeInfo () |
static std::type_info const & | typeInfo () |
Private Member Functions | |
virtual void | do_fillPtrVector (std::type_info const &iToType, std::vector< unsigned long > const &iIndices, std::vector< void const * > &oPtr) const |
virtual void | do_fillView (ProductID const &id, std::vector< void const * > &pointers, helper_vector_ptr &helpers) const |
virtual void | do_setPtr (std::type_info const &iToType, unsigned long iIndex, void const *&oPtr) const |
virtual std::type_info const & | dynamicTypeInfo_ () const |
virtual bool | hasIsProductEqual_ () const |
virtual bool | isMergeable_ () const |
virtual bool | isPresent_ () const |
virtual bool | isProductEqual_ (EDProduct const *newProduct) const |
virtual bool | mergeProduct_ (EDProduct const *newProduct) |
Wrapper< T > & | operator= (Wrapper< T > const &) |
Wrapper (Wrapper< T > const &rh) | |
Private Attributes | |
T | obj |
bool | present |
typedef T edm::Wrapper< T >::value_type |
typedef T edm::Wrapper< T >::wrapped_type |
edm::Wrapper< T >::Wrapper | ( | ) | [inline] |
edm::Wrapper< T >::Wrapper | ( | std::auto_ptr< T > | ptr | ) | [explicit] |
Definition at line 271 of file Wrapper.h.
References edm::Wrapper< T >::obj, edm::Wrapper< T >::present, and relativeConstraints::value.
: EDProduct(), present(ptr.get() != 0), obj() { if (present) { // The following will call swap if T has such a function, // and use assignment if T has no such function. typename boost::mpl::if_c<detail::has_swap_function<T>::value, DoSwap<T>, DoAssign<T> >::type swap_or_assign; swap_or_assign(obj, *ptr); } }
virtual edm::Wrapper< T >::~Wrapper | ( | ) | [inline, virtual] |
edm::Wrapper< T >::Wrapper | ( | T * | ptr | ) |
REFLEX must call the following constructor the constructor takes ownership of T*
Definition at line 286 of file Wrapper.h.
References edm::Wrapper< T >::obj, edm::Wrapper< T >::present, cond::rpcobtemp::temp, and relativeConstraints::value.
: EDProduct(), present(ptr != 0), obj() { std::auto_ptr<T> temp(ptr); if (present) { // The following will call swap if T has such a function, // and use assignment if T has no such function. typename boost::mpl::if_c<detail::has_swap_function<T>::value, DoSwap<T>, DoAssign<T> >::type swap_or_assign; swap_or_assign(obj, *ptr); } }
edm::Wrapper< T >::Wrapper | ( | Wrapper< T > const & | rh | ) | [private] |
void edm::Wrapper< T >::do_fillPtrVector | ( | std::type_info const & | iToType, |
std::vector< unsigned long > const & | iIndices, | ||
std::vector< void const * > & | oPtr | ||
) | const [private, virtual] |
Implements edm::EDProduct.
Definition at line 160 of file Wrapper.h.
References VarParsing::obj, and relativeConstraints::value.
{ typename boost::mpl::if_c<has_setPtr<T>::value, DoSetPtr<T>, DoNotSetPtr<T> >::type maybe_filler; maybe_filler(this->obj,iToType,iIndices,oPtr); }
void edm::Wrapper< T >::do_fillView | ( | ProductID const & | id, |
std::vector< void const * > & | pointers, | ||
helper_vector_ptr & | helpers | ||
) | const [inline, private, virtual] |
Implements edm::EDProduct.
Definition at line 104 of file Wrapper.h.
References VarParsing::obj, and relativeConstraints::value.
{ typename boost::mpl::if_c<has_fillView<T>::value, DoFillView<T>, DoNotFillView<T> >::type maybe_filler; maybe_filler(obj, id, pointers, helpers); }
void edm::Wrapper< T >::do_setPtr | ( | std::type_info const & | iToType, |
unsigned long | iIndex, | ||
void const *& | oPtr | ||
) | const [inline, private, virtual] |
Implements edm::EDProduct.
Definition at line 150 of file Wrapper.h.
References VarParsing::obj, and relativeConstraints::value.
{ typename boost::mpl::if_c<has_setPtr<T>::value, DoSetPtr<T>, DoNotSetPtr<T> >::type maybe_filler; maybe_filler(this->obj,iToType,iIndex,oPtr); }
virtual std::type_info const& edm::Wrapper< T >::dynamicTypeInfo_ | ( | ) | const [inline, private, virtual] |
bool edm::Wrapper< T >::hasIsProductEqual_ | ( | ) | const [private, virtual] |
Reimplemented from edm::EDProduct.
Definition at line 322 of file Wrapper.h.
References VarParsing::obj, and relativeConstraints::value.
{ typename boost::mpl::if_c<detail::has_isProductEqual_function<T>::value, DoHasIsProductEqual<T>, DoNotHasIsProductEqual<T> >::type has_is_equal; return has_is_equal(obj); }
bool edm::Wrapper< T >::isMergeable_ | ( | ) | const [private, virtual] |
Reimplemented from edm::EDProduct.
Definition at line 304 of file Wrapper.h.
References VarParsing::obj, and relativeConstraints::value.
{ typename boost::mpl::if_c<detail::has_mergeProduct_function<T>::value, IsMergeable<T>, IsNotMergeable<T> >::type is_mergeable; return is_mergeable(obj); }
virtual bool edm::Wrapper< T >::isPresent_ | ( | ) | const [inline, private, virtual] |
Reimplemented from edm::EDProduct.
Definition at line 47 of file Wrapper.h.
References edm::Wrapper< T >::present.
{return present;}
bool edm::Wrapper< T >::isProductEqual_ | ( | EDProduct const * | newProduct | ) | const [private, virtual] |
Reimplemented from edm::EDProduct.
Definition at line 330 of file Wrapper.h.
References compareJSON::const, edm::Wrapper< T >::obj, VarParsing::obj, and relativeConstraints::value.
{ Wrapper<T> const* wrappedNewProduct = dynamic_cast<Wrapper<T> const*>(newProduct); if (wrappedNewProduct == 0) return false; typename boost::mpl::if_c<detail::has_isProductEqual_function<T>::value, DoIsProductEqual<T>, DoNotIsProductEqual<T> >::type is_equal; return is_equal(obj, wrappedNewProduct->obj); }
bool edm::Wrapper< T >::mergeProduct_ | ( | EDProduct const * | newProduct | ) | [private, virtual] |
Reimplemented from edm::EDProduct.
Definition at line 312 of file Wrapper.h.
References compareJSON::const, edm::Wrapper< T >::obj, VarParsing::obj, and relativeConstraints::value.
{ Wrapper<T> const* wrappedNewProduct = dynamic_cast<Wrapper<T> const*>(newProduct); if (wrappedNewProduct == 0) return false; typename boost::mpl::if_c<detail::has_mergeProduct_function<T>::value, DoMergeProduct<T>, DoNotMergeProduct<T> >::type merge_product; return merge_product(obj, wrappedNewProduct->obj); }
T const* edm::Wrapper< T >::operator-> | ( | ) | const [inline] |
Definition at line 36 of file Wrapper.h.
References edm::Wrapper< T >::product().
{return product();}
T const* edm::Wrapper< T >::product | ( | ) | const [inline] |
Definition at line 35 of file Wrapper.h.
References edm::Wrapper< T >::obj, and edm::Wrapper< T >::present.
Referenced by edm::convert_handle(), fwlite::Handle< Collection >::getByLabel(), edm::refcore::getProductPtr_(), edm::Wrapper< T >::operator->(), and edm::Event::put().
static std::type_info const& edm::Wrapper< T >::productTypeInfo | ( | ) | [inline, static] |
static std::type_info const& edm::Wrapper< T >::typeInfo | ( | ) | [inline, static] |
Definition at line 40 of file Wrapper.h.
Referenced by fwlite::Handle< Collection >::getBranchNameFor(), fwlite::Handle< Collection >::getByLabel(), and fwlite::Scanner< Collection >::Scanner().
{ return typeid(Wrapper<T>);}
T edm::Wrapper< T >::obj [private] |
Definition at line 72 of file Wrapper.h.
Referenced by edm::Wrapper< T >::isProductEqual_(), edm::Wrapper< T >::mergeProduct_(), edm::Wrapper< T >::product(), and edm::Wrapper< T >::Wrapper().
bool edm::Wrapper< T >::present [private] |
Definition at line 70 of file Wrapper.h.
Referenced by edm::Wrapper< T >::isPresent_(), edm::Wrapper< T >::product(), and edm::Wrapper< T >::Wrapper().