CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions
ora::AnyTypeHandler< T > Struct Template Reference

#include <RecordDetails.h>

Inheritance diagram for ora::AnyTypeHandler< T >:
ora::TypeHandler

Public Member Functions

virtual void const * address (const AnyData &ad) const
 
 AnyTypeHandler ()
 
virtual void create (AnyData &ad) const
 
virtual void destroy (AnyData &ad) const
 
virtual void const * get (const AnyData &ad) const
 
virtual bool isPointer () const
 
virtual void set (AnyData &ad, void *p) const
 
- Public Member Functions inherited from ora::TypeHandler
virtual ~TypeHandler ()
 

Static Public Member Functions

static bool inplace ()
 

Additional Inherited Members

- Public Attributes inherited from ora::TypeHandler
std::type_info const * type
 

Detailed Description

template<typename T>
struct ora::AnyTypeHandler< T >

Definition at line 61 of file RecordDetails.h.

Constructor & Destructor Documentation

template<typename T>
ora::AnyTypeHandler< T >::AnyTypeHandler ( )
inline

Definition at line 62 of file RecordDetails.h.

62 { type = &typeid(T);}
type
Definition: HCALResponse.h:22
long double T

Member Function Documentation

template<typename T>
virtual void const* ora::AnyTypeHandler< T >::address ( const AnyData ad) const
inlinevirtual

Implements ora::TypeHandler.

Definition at line 67 of file RecordDetails.h.

67  {
68  if (isPointer())
69  return ad.p;
70  else
71  return get(ad);
72  }
virtual bool isPointer() const
Definition: RecordDetails.h:64
template<typename T>
virtual void ora::AnyTypeHandler< T >::create ( AnyData ad) const
inlinevirtual

Implements ora::TypeHandler.

Definition at line 88 of file RecordDetails.h.

88  {
89  if (inplace())
90  new(ad.address()) T();
91  else
92  ad.p = new T();
93  }
static bool inplace()
Definition: RecordDetails.h:63
long double T
template<typename T>
virtual void ora::AnyTypeHandler< T >::destroy ( AnyData ad) const
inlinevirtual

Implements ora::TypeHandler.

Definition at line 94 of file RecordDetails.h.

94  {
95  if (inplace())
96  reinterpret_cast<T*>(ad.address())->~T();
97  else
98  delete reinterpret_cast<T*>(ad.p);
99  }
static bool inplace()
Definition: RecordDetails.h:63
long double T
template<typename T>
virtual void const* ora::AnyTypeHandler< T >::get ( const AnyData ad) const
inlinevirtual
template<typename T>
static bool ora::AnyTypeHandler< T >::inplace ( )
inlinestatic
template<typename T>
virtual bool ora::AnyTypeHandler< T >::isPointer ( ) const
inlinevirtual

Implements ora::TypeHandler.

Definition at line 64 of file RecordDetails.h.

Referenced by ora::AnyTypeHandler< bool * >::address().

template<typename T>
virtual void ora::AnyTypeHandler< T >::set ( AnyData ad,
void *  p 
) const
inlinevirtual

Implements ora::TypeHandler.

Definition at line 75 of file RecordDetails.h.

Referenced by betterConfigParser.BetterConfigParser::getGeneral().

75  {
76  if (inplace())
77  *reinterpret_cast<T*>(ad.address()) = *reinterpret_cast<T*>(p);
78  else
79  *reinterpret_cast<T*>(ad.p) = *reinterpret_cast<T*>(p);
80  }
static bool inplace()
Definition: RecordDetails.h:63
long double T