CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
FWItemTVirtualCollectionProxyAccessor Class Reference

#include <Fireworks/Core/interface/FWItemTVirtualCollectionProxyAccessor.h>

Inheritance diagram for FWItemTVirtualCollectionProxyAccessor:
FWItemAccessorBase

Public Member Functions

const void * data () const override
 
 FWItemTVirtualCollectionProxyAccessor (const TClass *iType, std::shared_ptr< TVirtualCollectionProxy > iProxy, size_t iOffset=0)
 
bool isCollection () const override
 
const void * modelData (int iIndex) const override
 
const TClass * modelType () const override
 
void reset () override
 
void setData (const edm::ObjectWithDict &) override
 override if id of an object should be different than the index More...
 
unsigned int size () const override
 
const TClass * type () const override
 
 ~FWItemTVirtualCollectionProxyAccessor () override
 
- Public Member Functions inherited from FWItemAccessorBase
 FWItemAccessorBase ()
 
virtual ~FWItemAccessorBase ()
 

Private Member Functions

 FWItemTVirtualCollectionProxyAccessor (const FWItemTVirtualCollectionProxyAccessor &)=delete
 
const FWItemTVirtualCollectionProxyAccessoroperator= (const FWItemTVirtualCollectionProxyAccessor &)=delete
 

Private Attributes

std::shared_ptr< TVirtualCollectionProxy > m_colProxy
 
const void * m_data
 
size_t m_offset
 
const TClass * m_type
 

Detailed Description

Description: <one line="" class="" summary>="">

Usage: <usage>

Definition at line 30 of file FWItemTVirtualCollectionProxyAccessor.h.

Constructor & Destructor Documentation

FWItemTVirtualCollectionProxyAccessor::FWItemTVirtualCollectionProxyAccessor ( const TClass *  iType,
std::shared_ptr< TVirtualCollectionProxy >  iProxy,
size_t  iOffset = 0 
)
FWItemTVirtualCollectionProxyAccessor::~FWItemTVirtualCollectionProxyAccessor ( )
override

Definition at line 50 of file FWItemTVirtualCollectionProxyAccessor.cc.

51 {
52 }
FWItemTVirtualCollectionProxyAccessor::FWItemTVirtualCollectionProxyAccessor ( const FWItemTVirtualCollectionProxyAccessor )
privatedelete

Member Function Documentation

const void * FWItemTVirtualCollectionProxyAccessor::data ( ) const
overridevirtual

Implements FWItemAccessorBase.

Definition at line 104 of file FWItemTVirtualCollectionProxyAccessor.cc.

References m_data.

bool FWItemTVirtualCollectionProxyAccessor::isCollection ( ) const
overridevirtual

Implements FWItemAccessorBase.

Definition at line 131 of file FWItemTVirtualCollectionProxyAccessor.cc.

132 {
133  return true;
134 }
const void * FWItemTVirtualCollectionProxyAccessor::modelData ( int  iIndex) const
overridevirtual

Implements FWItemAccessorBase.

Definition at line 97 of file FWItemTVirtualCollectionProxyAccessor.cc.

References m_colProxy, and m_data.

98 {
99  if ( nullptr == m_data) { return m_data; }
100  return m_colProxy->At(iIndex);
101 }
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
const TClass * FWItemTVirtualCollectionProxyAccessor::modelType ( ) const
overridevirtual

Implements FWItemAccessorBase.

Definition at line 119 of file FWItemTVirtualCollectionProxyAccessor.cc.

References m_colProxy.

120 {
121  return m_colProxy->GetValueClass();
122 }
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
const FWItemTVirtualCollectionProxyAccessor& FWItemTVirtualCollectionProxyAccessor::operator= ( const FWItemTVirtualCollectionProxyAccessor )
privatedelete
void FWItemTVirtualCollectionProxyAccessor::reset ( void  )
overridevirtual

Implements FWItemAccessorBase.

Definition at line 84 of file FWItemTVirtualCollectionProxyAccessor.cc.

References m_colProxy, and m_data.

Referenced by setData().

85 {
86  if (nullptr != m_data)
87  {
88  m_data=nullptr;
89  m_colProxy->PopProxy();
90  }
91 }
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
void FWItemTVirtualCollectionProxyAccessor::setData ( const edm::ObjectWithDict )
overridevirtual

override if id of an object should be different than the index

Implements FWItemAccessorBase.

Definition at line 70 of file FWItemTVirtualCollectionProxyAccessor.cc.

References edm::ObjectWithDict::address(), m_colProxy, m_data, m_offset, and reset().

71 {
72  if (product.address() == nullptr)
73  {
74  reset();
75  return;
76  }
77 
78  m_data = product.address();
79  assert(nullptr!=m_data);
80  m_colProxy->PushProxy(static_cast<char*>(const_cast<void*>(m_data))+m_offset);
81 }
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
unsigned int FWItemTVirtualCollectionProxyAccessor::size ( void  ) const
overridevirtual

Implements FWItemAccessorBase.

Definition at line 110 of file FWItemTVirtualCollectionProxyAccessor.cc.

References m_colProxy, and m_data.

Referenced by ntupleDataFormat._Collection::__iter__(), and ntupleDataFormat._Collection::__len__().

111 {
112  if(m_data==nullptr) {
113  return 0;
114  }
115  return m_colProxy->Size();
116 }
std::shared_ptr< TVirtualCollectionProxy > m_colProxy
const TClass * FWItemTVirtualCollectionProxyAccessor::type ( ) const
overridevirtual

Member Data Documentation

std::shared_ptr<TVirtualCollectionProxy> FWItemTVirtualCollectionProxyAccessor::m_colProxy
private

Definition at line 60 of file FWItemTVirtualCollectionProxyAccessor.h.

Referenced by modelData(), modelType(), reset(), setData(), and size().

const void* FWItemTVirtualCollectionProxyAccessor::m_data
mutableprivate

Definition at line 61 of file FWItemTVirtualCollectionProxyAccessor.h.

Referenced by data(), modelData(), reset(), setData(), and size().

size_t FWItemTVirtualCollectionProxyAccessor::m_offset
private

Definition at line 62 of file FWItemTVirtualCollectionProxyAccessor.h.

Referenced by setData().

const TClass* FWItemTVirtualCollectionProxyAccessor::m_type
private

Definition at line 59 of file FWItemTVirtualCollectionProxyAccessor.h.

Referenced by type().