CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
edm::Wrapper< T > Class Template Reference

#include <BasicHandle.h>

Public Types

typedef T value_type
 
typedef T wrapped_type
 

Public Member Functions

std::type_info const & dynamicTypeInfo () const
 
std::type_info const & dynamicTypeInfo_ () const
 
void fillPtrVector (std::type_info const &iToType, std::vector< unsigned long > const &iIndicies, std::vector< void const * > &oPtr) const
 
void fillView (ProductID const &id, std::vector< void const * > &pointers, helper_vector_ptr &helpers) const
 
bool hasIsProductEqual () const
 
bool isMergeable () const
 
bool isPresent () const
 
bool isProductEqual (Wrapper< T > const *wrappedNewProduct) const
 
bool mergeProduct (Wrapper< T > const *wrappedNewProduct)
 
T const * operator-> () const
 
T const * product () const
 
void setPtr (std::type_info const &iToType, unsigned long iIndex, void const *&oPtr) const
 
 Wrapper ()
 
 Wrapper (std::auto_ptr< T > ptr)
 
 Wrapper (T *)
 
 ~Wrapper ()
 

Static Public Member Functions

static WrapperInterface< T >
const * 
getInterface ()
 
static std::type_info const & productTypeInfo ()
 
static std::type_info const & typeInfo ()
 

Private Member Functions

Wrapper< T > & operator= (Wrapper< T > const &)
 
 Wrapper (Wrapper< T > const &rh)
 

Private Attributes

T obj
 
bool present
 

Detailed Description

template<typename T>
class edm::Wrapper< T >

Definition at line 41 of file BasicHandle.h.

Member Typedef Documentation

template<typename T>
typedef T edm::Wrapper< T >::value_type

Definition at line 31 of file Wrapper.h.

template<typename T>
typedef T edm::Wrapper< T >::wrapped_type

Definition at line 32 of file Wrapper.h.

Constructor & Destructor Documentation

template<typename T>
edm::Wrapper< T >::Wrapper ( )
inline

Definition at line 33 of file Wrapper.h.

33 : present(false), obj() {}
bool present
Definition: Wrapper.h:82
template<typename T >
edm::Wrapper< T >::Wrapper ( std::auto_ptr< T ptr)
explicit

Definition at line 288 of file Wrapper.h.

References edm::Wrapper< T >::obj, edm::Wrapper< T >::present, and relativeConstraints::value.

288  :
289  present(ptr.get() != 0),
290  obj() {
291  if (present) {
292  // The following will call swap if T has such a function,
293  // and use assignment if T has no such function.
295  DoSwap<T>,
296  DoAssign<T> >::type swap_or_assign;
297  swap_or_assign(obj, *ptr);
298  }
299  }
type
Definition: HCALResponse.h:22
bool present
Definition: Wrapper.h:82
template<typename T>
edm::Wrapper< T >::~Wrapper ( )
inline

Definition at line 35 of file Wrapper.h.

35 {}
template<typename T >
edm::Wrapper< T >::Wrapper ( T ptr)

REFLEX must call the following constructor the constructor takes ownership of T*

Definition at line 302 of file Wrapper.h.

References edm::Wrapper< T >::obj, edm::Wrapper< T >::present, groupFilesInBlocks::temp, and relativeConstraints::value.

302  :
303  present(ptr != 0),
304  obj() {
305  std::auto_ptr<T> temp(ptr);
306  if (present) {
307  // The following will call swap if T has such a function,
308  // and use assignment if T has no such function.
310  DoSwap<T>,
311  DoAssign<T> >::type swap_or_assign;
312  swap_or_assign(obj, *ptr);
313  }
314 
315  }
type
Definition: HCALResponse.h:22
bool present
Definition: Wrapper.h:82
template<typename T>
edm::Wrapper< T >::Wrapper ( Wrapper< T > const &  rh)
private

Member Function Documentation

template<typename T>
std::type_info const& edm::Wrapper< T >::dynamicTypeInfo ( ) const
inline

Definition at line 62 of file Wrapper.h.

References edm::Wrapper< T >::dynamicTypeInfo_().

62 {return dynamicTypeInfo_();}
std::type_info const & dynamicTypeInfo_() const
Definition: Wrapper.h:65
template<typename T>
std::type_info const& edm::Wrapper< T >::dynamicTypeInfo_ ( ) const
inline

Definition at line 65 of file Wrapper.h.

Referenced by edm::Wrapper< T >::dynamicTypeInfo().

65 {return typeid(T);}
long double T
template<typename T >
void edm::Wrapper< T >::fillPtrVector ( std::type_info const &  iToType,
std::vector< unsigned long > const &  iIndicies,
std::vector< void const * > &  oPtr 
) const

Definition at line 177 of file Wrapper.h.

References getGTfromDQMFile::obj, and relativeConstraints::value.

179  {
181  DoSetPtr<T>,
182  DoNotSetPtr<T> >::type maybe_filler;
183  maybe_filler(this->obj, iToType, iIndices, oPtr);
184  }
type
Definition: HCALResponse.h:22
template<typename T >
void edm::Wrapper< T >::fillView ( ProductID const &  id,
std::vector< void const * > &  pointers,
helper_vector_ptr helpers 
) const
inline

Definition at line 116 of file Wrapper.h.

References getGTfromDQMFile::obj, and relativeConstraints::value.

118  {
119  // This should never be called with non-empty arguments, or an
120  // invalid ID; any attempt to do so is an indication of a coding error.
121  assert(id.isValid());
122  assert(pointers.empty());
123  assert(helpers.get() == 0);
125  DoFillView<T>,
126  DoNotFillView<T> >::type maybe_filler;
127  maybe_filler(obj, id, pointers, helpers);
128  }
type
Definition: HCALResponse.h:22
template<typename T >
WrapperInterface< T > const * edm::Wrapper< T >::getInterface ( )
static

Definition at line 469 of file Wrapper.h.

References instance.

469  {
470  static WrapperInterface<T> instance;
471  return &instance;
472  }
static PFTauRenderPlugin instance
template<typename T >
bool edm::Wrapper< T >::hasIsProductEqual ( ) const

Definition at line 335 of file Wrapper.h.

References getGTfromDQMFile::obj, and relativeConstraints::value.

335  {
337  DoHasIsProductEqual<T>,
338  DoNotHasIsProductEqual<T> >::type has_is_equal;
339  return has_is_equal(obj);
340  }
type
Definition: HCALResponse.h:22
template<typename T >
bool edm::Wrapper< T >::isMergeable ( ) const

Definition at line 319 of file Wrapper.h.

References getGTfromDQMFile::obj, and relativeConstraints::value.

319  {
321  IsMergeable<T>,
322  IsNotMergeable<T> >::type is_mergeable;
323  return is_mergeable(obj);
324  }
type
Definition: HCALResponse.h:22
template<typename T>
bool edm::Wrapper< T >::isPresent ( ) const
inline

Definition at line 64 of file Wrapper.h.

References edm::Wrapper< T >::present.

64 {return present;}
bool present
Definition: Wrapper.h:82
template<typename T >
bool edm::Wrapper< T >::isProductEqual ( Wrapper< T > const *  wrappedNewProduct) const

Definition at line 343 of file Wrapper.h.

References getGTfromDQMFile::obj, edm::Wrapper< T >::obj, and relativeConstraints::value.

343  {
345  DoIsProductEqual<T>,
346  DoNotIsProductEqual<T> >::type is_equal;
347  return is_equal(obj, wrappedNewProduct->obj);
348  }
type
Definition: HCALResponse.h:22
template<typename T >
bool edm::Wrapper< T >::mergeProduct ( Wrapper< T > const *  wrappedNewProduct)

Definition at line 327 of file Wrapper.h.

References getGTfromDQMFile::obj, edm::Wrapper< T >::obj, and relativeConstraints::value.

327  {
329  DoMergeProduct<T>,
330  DoNotMergeProduct<T> >::type merge_product;
331  return merge_product(obj, wrappedNewProduct->obj);
332  }
type
Definition: HCALResponse.h:22
template<typename T>
T const* edm::Wrapper< T >::operator-> ( ) const
inline

Definition at line 37 of file Wrapper.h.

References edm::Wrapper< T >::product().

37 {return product();}
T const * product() const
Definition: Wrapper.h:36
template<typename T>
Wrapper<T>& edm::Wrapper< T >::operator= ( Wrapper< T > const &  )
private
template<typename T>
T const* edm::Wrapper< T >::product ( ) const
inline
template<typename T>
static std::type_info const& edm::Wrapper< T >::productTypeInfo ( )
inlinestatic

Definition at line 40 of file Wrapper.h.

40 { return typeid(T);}
long double T
template<typename T >
void edm::Wrapper< T >::setPtr ( std::type_info const &  iToType,
unsigned long  iIndex,
void const *&  oPtr 
) const
inline

Definition at line 167 of file Wrapper.h.

References getGTfromDQMFile::obj, and relativeConstraints::value.

169  {
171  DoSetPtr<T>,
172  DoNotSetPtr<T> >::type maybe_filler;
173  maybe_filler(this->obj, iToType, iIndex, oPtr);
174  }
type
Definition: HCALResponse.h:22
template<typename T>
static std::type_info const& edm::Wrapper< T >::typeInfo ( )
inlinestatic

Member Data Documentation

template<typename T>
T edm::Wrapper< T >::obj
private
template<typename T>
bool edm::Wrapper< T >::present
private