CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions

FWItemRandomAccessorBase Class Reference

#include <FWItemRandomAccessor.h>

Inheritance diagram for FWItemRandomAccessorBase:
FWItemAccessorBase FWItemDetSetAccessor< C, COLL, V > FWItemMuonDigiAccessor< C, V > FWItemNewDetSetAccessor< C, COLL, V > FWItemRandomAccessor< C, V > FWItemRangeAccessor< C, R, V >

List of all members.

Public Member Functions

const void * data () const
bool isCollection () const
const TClass * modelType () const
virtual void reset ()
void setData (const ROOT::Reflex::Object &)
const TClass * type () const
virtual ~FWItemRandomAccessorBase ()

Protected Member Functions

 FWItemRandomAccessorBase (const TClass *type, const type_info &modelTypeName)
void * getDataPtr () const

Protected Attributes

void * m_data
const TClass * m_modelType
const TClass * m_type

Private Member Functions

 FWItemRandomAccessorBase (const FWItemRandomAccessorBase &)
const FWItemRandomAccessorBaseoperator= (const FWItemRandomAccessorBase &)

Detailed Description

Non templated part of the generic FWItemRandomAccessor<T> class.

Notice that the constructor is protected, so that it is impossible to instanciate this baseclass directly.

Definition at line 29 of file FWItemRandomAccessor.h.


Constructor & Destructor Documentation

FWItemRandomAccessorBase::~FWItemRandomAccessorBase ( ) [virtual]

Definition at line 37 of file FWItemRandomAccessor.cc.

{
}
FWItemRandomAccessorBase::FWItemRandomAccessorBase ( const TClass *  type,
const type_info &  modelTypeName 
) [protected]

Definition at line 25 of file FWItemRandomAccessor.cc.

:m_type(type),
 m_modelType(TClass::GetClass(modelTypeName)),
 m_data(0)
{
}
FWItemRandomAccessorBase::FWItemRandomAccessorBase ( const FWItemRandomAccessorBase ) [private]

Member Function Documentation

const void * FWItemRandomAccessorBase::data ( ) const [virtual]

Implements FWItemAccessorBase.

Definition at line 83 of file FWItemRandomAccessor.cc.

References m_data.

{
   return m_data;
}
void * FWItemRandomAccessorBase::getDataPtr ( ) const [protected]
bool FWItemRandomAccessorBase::isCollection ( ) const [virtual]

Implements FWItemAccessorBase.

Definition at line 108 of file FWItemRandomAccessor.cc.

{
   return true;
}
const TClass * FWItemRandomAccessorBase::modelType ( ) const [virtual]

Implements FWItemAccessorBase.

Definition at line 101 of file FWItemRandomAccessor.cc.

References m_modelType.

{
   assert(m_modelType);
   return m_modelType; 
}
const FWItemRandomAccessorBase& FWItemRandomAccessorBase::operator= ( const FWItemRandomAccessorBase ) [private]
void FWItemRandomAccessorBase::reset ( void  ) [virtual]

Implements FWItemAccessorBase.

Definition at line 74 of file FWItemRandomAccessor.cc.

References m_data.

Referenced by setData().

{
   m_data = 0;
}
void FWItemRandomAccessorBase::setData ( const ROOT::Reflex::Object &  product)

Definition at line 57 of file FWItemRandomAccessor.cc.

References m_data, and reset().

{
   if (product.Address() == 0)
   {
      reset();
      return;
   }
   
   using ROOT::Reflex::Object;
   if(product.TypeOf().IsTypedef())
      m_data = Object(product.TypeOf().ToType(),product.Address()).Address();
   else
      m_data = product.Address();
   assert(0!=m_data);
}
const TClass * FWItemRandomAccessorBase::type ( ) const [virtual]

Implements FWItemAccessorBase.

Definition at line 95 of file FWItemRandomAccessor.cc.

References m_type.

{
   return m_type;
}

Member Data Documentation

void* FWItemRandomAccessorBase::m_data [mutable, protected]

Definition at line 48 of file FWItemRandomAccessor.h.

Referenced by data(), getDataPtr(), reset(), and setData().

const TClass* FWItemRandomAccessorBase::m_modelType [protected]

Definition at line 47 of file FWItemRandomAccessor.h.

Referenced by modelType().

const TClass* FWItemRandomAccessorBase::m_type [protected]

Definition at line 46 of file FWItemRandomAccessor.h.

Referenced by type().