CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific Struct Reference

#include <IndirectVectorHolder.h>

Inheritance diagram for edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific:
edm::reftobase::BaseVectorHolder< T >::const_iterator_imp

Public Types

typedef ptrdiff_t difference_type
 
- Public Types inherited from edm::reftobase::BaseVectorHolder< T >::const_iterator_imp
typedef ptrdiff_t difference_type
 

Public Member Functions

void assign (const const_iterator_imp *o) override
 
const_iterator_imp_specificclone () const override
 
 const_iterator_imp_specific ()
 
 const_iterator_imp_specific (const typename RefVectorHolderBase::const_iterator &it)
 
void decrease () override
 
void decrease (difference_type d) override
 
base_ref_type deref () const override
 
difference_type difference (const const_iterator_imp *o) const override
 
bool equal_to (const const_iterator_imp *o) const override
 
void increase () override
 
void increase (difference_type d) override
 
bool less_than (const const_iterator_imp *o) const override
 
 ~const_iterator_imp_specific () override
 
- Public Member Functions inherited from edm::reftobase::BaseVectorHolder< T >::const_iterator_imp
virtual void assign (const_iterator_imp const *)=0
 
 const_iterator_imp ()
 
virtual difference_type difference (const_iterator_imp const *) const =0
 
virtual bool equal_to (const_iterator_imp const *) const =0
 
virtual bool less_than (const_iterator_imp const *) const =0
 
virtual ~const_iterator_imp ()
 

Private Member Functions

const RefVectorHolderBase::const_iteratordc (const const_iterator_imp *o) const
 

Private Attributes

RefVectorHolderBase::const_iterator i
 

Detailed Description

template<typename T>
struct edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific

Definition at line 60 of file IndirectVectorHolder.h.

Member Typedef Documentation

Definition at line 61 of file IndirectVectorHolder.h.

Constructor & Destructor Documentation

template<typename T>
edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::const_iterator_imp_specific ( )
inline

Definition at line 62 of file IndirectVectorHolder.h.

62 { }
template<typename T>
edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::const_iterator_imp_specific ( const typename RefVectorHolderBase::const_iterator it)
inlineexplicit

Definition at line 63 of file IndirectVectorHolder.h.

63 : i ( it ) { }
template<typename T>
edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::~const_iterator_imp_specific ( )
inlineoverride

Definition at line 64 of file IndirectVectorHolder.h.

64 { }

Member Function Documentation

template<typename T>
void edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::assign ( const const_iterator_imp o)
inlineoverride

Definition at line 72 of file IndirectVectorHolder.h.

References mps_fire::i.

72 { i = dc( o ); }
const RefVectorHolderBase::const_iterator & dc(const const_iterator_imp *o) const
template<typename T>
const_iterator_imp_specific* edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::clone ( void  ) const
inlineoverridevirtual
template<typename T>
const RefVectorHolderBase::const_iterator& edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::dc ( const const_iterator_imp o) const
inlineprivate

Definition at line 78 of file IndirectVectorHolder.h.

References edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::i, edm::errors::InvalidReference, connectstrParser::o, and edm::Exception::throwThis().

78  {
79  if ( o == nullptr ) {
81  "In IndirectVectorHolder trying to dereference a null pointer");
82  }
83  const const_iterator_imp_specific * oo = dynamic_cast<const const_iterator_imp_specific *>( o );
84  if ( oo == nullptr ) {
86  "In IndirectVectorHolder trying to cast iterator to wrong type ");
87  }
88  return oo->i;
89  }
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:83
template<typename T>
void edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::decrease ( )
inlineoverridevirtual
template<typename T>
void edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::decrease ( difference_type  d)
inlineoverridevirtual
template<typename T>
base_ref_type edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::deref ( ) const
inlineoverridevirtual

Implements edm::reftobase::BaseVectorHolder< T >::const_iterator_imp.

Definition at line 73 of file IndirectVectorHolder.h.

References mps_fire::i.

73  {
74  return base_ref_type( * i );
75  }
template<typename T>
difference_type edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::difference ( const const_iterator_imp o) const
inlineoverride

Definition at line 76 of file IndirectVectorHolder.h.

References mps_fire::i.

76 { return i - dc( o ); }
const RefVectorHolderBase::const_iterator & dc(const const_iterator_imp *o) const
template<typename T>
bool edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::equal_to ( const const_iterator_imp o) const
inlineoverride

Definition at line 70 of file IndirectVectorHolder.h.

References mps_fire::i.

70 { return i == dc( o ); }
const RefVectorHolderBase::const_iterator & dc(const const_iterator_imp *o) const
template<typename T>
void edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::increase ( )
inlineoverridevirtual
template<typename T>
void edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::increase ( difference_type  d)
inlineoverridevirtual
template<typename T>
bool edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::less_than ( const const_iterator_imp o) const
inlineoverride

Definition at line 71 of file IndirectVectorHolder.h.

References mps_fire::i.

71 { return i < dc( o ); }
const RefVectorHolderBase::const_iterator & dc(const const_iterator_imp *o) const

Member Data Documentation

template<typename T>
RefVectorHolderBase::const_iterator edm::reftobase::IndirectVectorHolder< T >::const_iterator_imp_specific::i
private