ATLAS Offline Software
Loading...
Searching...
No Matches
NavigableVector< CONT, OBJCT > Class Template Reference

#include <NavigableVector.h>

Collaboration diagram for NavigableVector< CONT, OBJCT >:

Public Types

typedef SG::GenerateIndexingPolicy< CONT >::type::index_type external_index_type
typedef ElementLink< CONT > data_type
typedef std::vector< data_typestore_type
typedef store_type::iterator store_iter
typedef store_type::const_iterator store_const_iter
typedef NavigableVectorIterator< OBJCT, store_typeconst_iterator
typedef OBJCT * object_ptr
typedef const OBJCT * object_const_ptr

Public Member Functions

 NavigableVector ()
virtual ~NavigableVector ()=default
void addElement (const CONT *aContainer, const OBJCT *anObject)
void addElement (const CONT *aContainer, external_index_type anIndex)
void addElement (const data_type &aLink)
unsigned int size () const
const_iterator begin () const
const_iterator end () const
const_iterator find (const OBJCT *anObject) const
const OBJCT * operator[] (int i) const
const OBJCT * operator[] (size_t i) const
const data_typelinkAt (size_t i) const
void push_back (data_type &theData)

Protected Attributes

store_type m_store

Detailed Description

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
class NavigableVector< CONT, OBJCT >

Definition at line 19 of file NavigableVector.h.

Member Typedef Documentation

◆ const_iterator

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef NavigableVectorIterator<OBJCT,store_type> NavigableVector< CONT, OBJCT >::const_iterator

Definition at line 32 of file NavigableVector.h.

◆ data_type

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef ElementLink<CONT> NavigableVector< CONT, OBJCT >::data_type

Definition at line 28 of file NavigableVector.h.

◆ external_index_type

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef SG::GenerateIndexingPolicy<CONT>::type::index_type NavigableVector< CONT, OBJCT >::external_index_type

Definition at line 25 of file NavigableVector.h.

◆ object_const_ptr

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef const OBJCT* NavigableVector< CONT, OBJCT >::object_const_ptr

Definition at line 34 of file NavigableVector.h.

◆ object_ptr

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef OBJCT* NavigableVector< CONT, OBJCT >::object_ptr

Definition at line 33 of file NavigableVector.h.

◆ store_const_iter

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef store_type::const_iterator NavigableVector< CONT, OBJCT >::store_const_iter

Definition at line 31 of file NavigableVector.h.

◆ store_iter

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef store_type::iterator NavigableVector< CONT, OBJCT >::store_iter

Definition at line 30 of file NavigableVector.h.

◆ store_type

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
typedef std::vector<data_type> NavigableVector< CONT, OBJCT >::store_type

Definition at line 29 of file NavigableVector.h.

Constructor & Destructor Documentation

◆ NavigableVector()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
NavigableVector< CONT, OBJCT >::NavigableVector ( )
inline

Definition at line 36 of file NavigableVector.h.

37 { }

◆ ~NavigableVector()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
virtual NavigableVector< CONT, OBJCT >::~NavigableVector ( )
virtualdefault

Member Function Documentation

◆ addElement() [1/3]

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
void NavigableVector< CONT, OBJCT >::addElement ( const CONT * aContainer,
const OBJCT * anObject )
inline

Definition at line 42 of file NavigableVector.h.

43 {
45 aLink.toContainedElement(*aContainer,(object_ptr)anObject);
46 m_store.push_back(aLink);
47 }
ElementLink< CONT > data_type

◆ addElement() [2/3]

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
void NavigableVector< CONT, OBJCT >::addElement ( const CONT * aContainer,
external_index_type anIndex )
inline

Definition at line 49 of file NavigableVector.h.

50 {
52 aLink.toIndexedElement(*aContainer,anIndex);
53 m_store.push_back(aLink);
54 }

◆ addElement() [3/3]

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
void NavigableVector< CONT, OBJCT >::addElement ( const data_type & aLink)
inline

Definition at line 56 of file NavigableVector.h.

57 {
58 m_store.push_back(aLink);
59 }

◆ begin()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
const_iterator NavigableVector< CONT, OBJCT >::begin ( ) const
inline

Definition at line 64 of file NavigableVector.h.

65 {
67 }
NavigableVectorIterator begin()
NavigableVectorIterator< OBJCT, store_type > const_iterator

◆ end()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
const_iterator NavigableVector< CONT, OBJCT >::end ( ) const
inline

Definition at line 68 of file NavigableVector.h.

69 {
70 return const_iterator(m_store).end();
71 }
NavigableVectorIterator end()

◆ find()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
const_iterator NavigableVector< CONT, OBJCT >::find ( const OBJCT * anObject) const
inline

Definition at line 72 of file NavigableVector.h.

73 {
75 }
NavigableVectorIterator & find(const object_type *anObject)

◆ linkAt()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
const data_type & NavigableVector< CONT, OBJCT >::linkAt ( size_t i) const
inline

Definition at line 92 of file NavigableVector.h.

93 {
94 if (i < m_store.size())
95 return m_store[i];
96 static const data_type null;
97 return null;
98 }

◆ operator[]() [1/2]

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
const OBJCT * NavigableVector< CONT, OBJCT >::operator[] ( int i) const
inline

Definition at line 78 of file NavigableVector.h.

79 {
80 return i >= 0 && i < (int)m_store.size()
81 ? *(m_store[i])
82 : 0;
83 }

◆ operator[]() [2/2]

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
const OBJCT * NavigableVector< CONT, OBJCT >::operator[] ( size_t i) const
inline

Definition at line 84 of file NavigableVector.h.

85 {
86 return i < m_store.size()
87 ? *(m_store[i])
88 : 0;
89 }

◆ push_back()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
void NavigableVector< CONT, OBJCT >::push_back ( data_type & theData)
inline

Definition at line 100 of file NavigableVector.h.

101 {
102 m_store.push_back(theData);
103 }

◆ size()

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
unsigned int NavigableVector< CONT, OBJCT >::size ( ) const
inline

Definition at line 61 of file NavigableVector.h.

61{ return m_store.size(); }

Member Data Documentation

◆ m_store

template<typename CONT, typename OBJCT = typename CONT::base_value_type>
store_type NavigableVector< CONT, OBJCT >::m_store
protected

Definition at line 107 of file NavigableVector.h.


The documentation for this class was generated from the following file: