BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
DataList< T > Class Template Reference

an STL list of pointers that by default owns its pointed elements. When a DataList it is created with the flag SG::VIEW_ELEMENTS (see enum OwnershipPolicy) it does now own its elements. This is typically used to have DataList elements allocated by DataPool. Notice the use of value_type instead of const_reference: this is justified by the fact that the elem are always ptrs More...

#include <DataList.h>

Public Types

list typedefs: it behaves like a list<T*>
typedef T *& reference
typedef const reference const_reference
typedef PtrList::iterator iterator
typedef PtrList::const_iterator const_iterator
typedef PtrList::size_type size_type
typedef PtrList::difference_type difference_type
typedef T * value_type
typedef PtrList::allocator_type allocator_type
typedef T ** pointer
typedef const pointer const_pointer
typedef PtrList::reverse_iterator reverse_iterator
typedef PtrList::const_reverse_iterator const_reverse_iterator
typedef T *& reference
typedef const reference const_reference
typedef PtrList::iterator iterator
typedef PtrList::const_iterator const_iterator
typedef PtrList::size_type size_type
typedef PtrList::difference_type difference_type
typedef T * value_type
typedef PtrList::allocator_type allocator_type
typedef T ** pointer
typedef const pointer const_pointer
typedef PtrList::reverse_iterator reverse_iterator
typedef PtrList::const_reverse_iterator const_reverse_iterator
typedef T *& reference
typedef const reference const_reference
typedef PtrList::iterator iterator
typedef PtrList::const_iterator const_iterator
typedef PtrList::size_type size_type
typedef PtrList::difference_type difference_type
typedef T * value_type
typedef PtrList::allocator_type allocator_type
typedef T ** pointer
typedef const pointer const_pointer
typedef PtrList::reverse_iterator reverse_iterator
typedef PtrList::const_reverse_iterator const_reverse_iterator

Public Member Functions

const PtrList & stdcont () const
 access the underlying std list;
const PtrList & stdcont () const
 access the underlying std list;
const PtrList & stdcont () const
 access the underlying std list;
list structors (no Allocators). Own elements by default
 DataList (SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS)
 DataList (size_type n, value_type pElem=0, SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS)
 DataList (const DataList< T > &rhs)
template<class InputIterator>
 DataList (InputIterator first, InputIterator last, SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
DataList< T > operator= (const DataList< T > &rhs)
template<class InputIterator>
void assign (InputIterator first, InputIterator last)
 the ownership policy will determine who owns the assigned elements
void assign (size_type n, value_type pElem)
 the ownership policy will determine who owns the assigned elements
virtual ~DataList ()
 DataList (SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS)
 DataList (size_type n, value_type pElem=0, SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS)
 DataList (const DataList< T > &rhs)
template<class InputIterator>
 DataList (InputIterator first, InputIterator last, SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
DataList< T > operator= (const DataList< T > &rhs)
template<class InputIterator>
void assign (InputIterator first, InputIterator last)
 the ownership policy will determine who owns the assigned elements
void assign (size_type n, value_type pElem)
 the ownership policy will determine who owns the assigned elements
virtual ~DataList ()
 DataList (SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS)
 DataList (size_type n, value_type pElem=0, SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS)
 DataList (const DataList< T > &rhs)
template<class InputIterator>
 DataList (InputIterator first, InputIterator last, SG::OwnershipPolicy ownPolicy=SG::VIEW_ELEMENTS)
DataList< T > operator= (const DataList< T > &rhs)
template<class InputIterator>
void assign (InputIterator first, InputIterator last)
 the ownership policy will determine who owns the assigned elements
void assign (size_type n, value_type pElem)
 the ownership policy will determine who owns the assigned elements
virtual ~DataList ()

Detailed Description

template<typename T>
class DataList< T >

an STL list of pointers that by default owns its pointed elements. When a DataList it is created with the flag SG::VIEW_ELEMENTS (see enum OwnershipPolicy) it does now own its elements. This is typically used to have DataList elements allocated by DataPool. Notice the use of value_type instead of const_reference: this is justified by the fact that the elem are always ptrs

Author
Srini Rajagopalan - ATLAS Collaboration
Todo
Many list operations only implemented for VIEW lists
Id
DataList.h,v 1.7 2003/08/02 01:40:38 calaf Exp
Author
Srini Rajagopalan - ATLAS Collaboration
Todo
Many list operations only implemented for VIEW lists
Id
DataList.h,v 1.7 2003/08/02 01:40:38 calaf Exp
Author
Srini Rajagopalan - ATLAS Collaboration
Todo
Many list operations only implemented for VIEW lists
Id
DataList.h,v 1.7 2003/08/02 01:40:38 calaf Exp

Definition at line 33 of file Event/GeneratorObject/include/DataModel/DataList.h.

Member Typedef Documentation

◆ allocator_type [1/3]

template<typename T>
typedef PtrList::allocator_type DataList< T >::allocator_type

◆ allocator_type [2/3]

template<typename T>
typedef PtrList::allocator_type DataList< T >::allocator_type

◆ allocator_type [3/3]

template<typename T>
typedef PtrList::allocator_type DataList< T >::allocator_type

◆ const_iterator [1/3]

template<typename T>
typedef PtrList::const_iterator DataList< T >::const_iterator

◆ const_iterator [2/3]

template<typename T>
typedef PtrList::const_iterator DataList< T >::const_iterator

◆ const_iterator [3/3]

template<typename T>
typedef PtrList::const_iterator DataList< T >::const_iterator

◆ const_pointer [1/3]

template<typename T>
typedef const pointer DataList< T >::const_pointer

◆ const_pointer [2/3]

template<typename T>
typedef const pointer DataList< T >::const_pointer

◆ const_pointer [3/3]

template<typename T>
typedef const pointer DataList< T >::const_pointer

◆ const_reference [1/3]

template<typename T>
typedef const reference DataList< T >::const_reference

◆ const_reference [2/3]

template<typename T>
typedef const reference DataList< T >::const_reference

◆ const_reference [3/3]

template<typename T>
typedef const reference DataList< T >::const_reference

◆ const_reverse_iterator [1/3]

template<typename T>
typedef PtrList::const_reverse_iterator DataList< T >::const_reverse_iterator

◆ const_reverse_iterator [2/3]

template<typename T>
typedef PtrList::const_reverse_iterator DataList< T >::const_reverse_iterator

◆ const_reverse_iterator [3/3]

template<typename T>
typedef PtrList::const_reverse_iterator DataList< T >::const_reverse_iterator

◆ difference_type [1/3]

template<typename T>
typedef PtrList::difference_type DataList< T >::difference_type

◆ difference_type [2/3]

template<typename T>
typedef PtrList::difference_type DataList< T >::difference_type

◆ difference_type [3/3]

template<typename T>
typedef PtrList::difference_type DataList< T >::difference_type

◆ iterator [1/3]

template<typename T>
typedef PtrList::iterator DataList< T >::iterator

◆ iterator [2/3]

template<typename T>
typedef PtrList::iterator DataList< T >::iterator

◆ iterator [3/3]

template<typename T>
typedef PtrList::iterator DataList< T >::iterator

◆ pointer [1/3]

template<typename T>
typedef T** DataList< T >::pointer

◆ pointer [2/3]

template<typename T>
typedef T** DataList< T >::pointer

◆ pointer [3/3]

template<typename T>
typedef T** DataList< T >::pointer

◆ reference [1/3]

template<typename T>
typedef T*& DataList< T >::reference

◆ reference [2/3]

template<typename T>
typedef T*& DataList< T >::reference

◆ reference [3/3]

template<typename T>
typedef T*& DataList< T >::reference

◆ reverse_iterator [1/3]

template<typename T>
typedef PtrList::reverse_iterator DataList< T >::reverse_iterator

◆ reverse_iterator [2/3]

template<typename T>
typedef PtrList::reverse_iterator DataList< T >::reverse_iterator

◆ reverse_iterator [3/3]

template<typename T>
typedef PtrList::reverse_iterator DataList< T >::reverse_iterator

◆ size_type [1/3]

template<typename T>
typedef PtrList::size_type DataList< T >::size_type

◆ size_type [2/3]

template<typename T>
typedef PtrList::size_type DataList< T >::size_type

◆ size_type [3/3]

template<typename T>
typedef PtrList::size_type DataList< T >::size_type

◆ value_type [1/3]

template<typename T>
typedef T* DataList< T >::value_type

◆ value_type [2/3]

template<typename T>
typedef T* DataList< T >::value_type

◆ value_type [3/3]

template<typename T>
typedef T* DataList< T >::value_type

Constructor & Destructor Documentation

◆ DataList() [1/12]

template<typename T>
DataList< T >::DataList ( SG::OwnershipPolicy ownPolicy = SG::OWN_ELEMENTS)
inlineexplicit

Definition at line 61 of file Event/GeneratorObject/include/DataModel/DataList.h.

62 : m_ownPolicy( ownPolicy ), m_pCont( PtrList() ) {}
an STL list of pointers that by default owns its pointed elements. When a DataList it is created with...

Referenced by DataList(), and operator=().

◆ DataList() [2/12]

template<typename T>
DataList< T >::DataList ( size_type n,
value_type pElem = 0,
SG::OwnershipPolicy ownPolicy = SG::OWN_ELEMENTS )
inlineexplicit

Definition at line 65 of file Event/GeneratorObject/include/DataModel/DataList.h.

67 : m_ownPolicy( ownPolicy ), m_pCont( n, pElem ) {}

◆ DataList() [3/12]

template<typename T>
DataList< T >::DataList ( const DataList< T > & rhs)
inline

copy constructor: since it is a shallow copy the copy DataList does not own the elements

Definition at line 71 of file Event/GeneratorObject/include/DataModel/DataList.h.

72 : m_ownPolicy( SG::VIEW_ELEMENTS ), m_pCont( rhs.stdcont() ) {}
const PtrList & stdcont() const
access the underlying std list;

◆ DataList() [4/12]

template<typename T>
template<class InputIterator>
DataList< T >::DataList ( InputIterator first,
InputIterator last,
SG::OwnershipPolicy ownPolicy = SG::VIEW_ELEMENTS )
inline

copy via iterators: since it is a shallow copy the copy DataList does not own the elements

Definition at line 77 of file Event/GeneratorObject/include/DataModel/DataList.h.

79 : m_ownPolicy( ownPolicy ), m_pCont( first, last ) {}

◆ ~DataList() [1/3]

template<typename T>
virtual DataList< T >::~DataList ( )
inlinevirtual

Deletes the pointed-at elements when m_ownPolicy == SG::OWN_ELEMENTS (i.e. by default).

Definition at line 96 of file Event/GeneratorObject/include/DataModel/DataList.h.

103 {
104 if ( m_ownPolicy == SG::OWN_ELEMENTS )
105 {
106 iterator iter = begin();
107 while ( iter != end() ) delete *( iter++ );
108 }
109 }

◆ DataList() [5/12]

template<typename T>
DataList< T >::DataList ( SG::OwnershipPolicy ownPolicy = SG::OWN_ELEMENTS)
inlineexplicit

Definition at line 61 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

62 : m_ownPolicy( ownPolicy ), m_pCont( PtrList() ) {}

◆ DataList() [6/12]

template<typename T>
DataList< T >::DataList ( size_type n,
value_type pElem = 0,
SG::OwnershipPolicy ownPolicy = SG::OWN_ELEMENTS )
inlineexplicit

Definition at line 65 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

67 : m_ownPolicy( ownPolicy ), m_pCont( n, pElem ) {}

◆ DataList() [7/12]

template<typename T>
DataList< T >::DataList ( const DataList< T > & rhs)
inline

copy constructor: since it is a shallow copy the copy DataList does not own the elements

Definition at line 71 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

72 : m_ownPolicy( SG::VIEW_ELEMENTS ), m_pCont( rhs.stdcont() ) {}

◆ DataList() [8/12]

template<typename T>
template<class InputIterator>
DataList< T >::DataList ( InputIterator first,
InputIterator last,
SG::OwnershipPolicy ownPolicy = SG::VIEW_ELEMENTS )
inline

copy via iterators: since it is a shallow copy the copy DataList does not own the elements

Definition at line 77 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

79 : m_ownPolicy( ownPolicy ), m_pCont( first, last ) {}

◆ ~DataList() [2/3]

template<typename T>
virtual DataList< T >::~DataList ( )
inlinevirtual

Deletes the pointed-at elements when m_ownPolicy == SG::OWN_ELEMENTS (i.e. by default).

Definition at line 96 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

103 {
104 if ( m_ownPolicy == SG::OWN_ELEMENTS )
105 {
106 iterator iter = begin();
107 while ( iter != end() ) delete *( iter++ );
108 }
109 }

◆ DataList() [9/12]

template<typename T>
DataList< T >::DataList ( SG::OwnershipPolicy ownPolicy = SG::OWN_ELEMENTS)
inlineexplicit

Definition at line 61 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

62 : m_ownPolicy( ownPolicy ), m_pCont( PtrList() ) {}

◆ DataList() [10/12]

template<typename T>
DataList< T >::DataList ( size_type n,
value_type pElem = 0,
SG::OwnershipPolicy ownPolicy = SG::OWN_ELEMENTS )
inlineexplicit

Definition at line 65 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

67 : m_ownPolicy( ownPolicy ), m_pCont( n, pElem ) {}

◆ DataList() [11/12]

template<typename T>
DataList< T >::DataList ( const DataList< T > & rhs)
inline

copy constructor: since it is a shallow copy the copy DataList does not own the elements

Definition at line 71 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

72 : m_ownPolicy( SG::VIEW_ELEMENTS ), m_pCont( rhs.stdcont() ) {}

◆ DataList() [12/12]

template<typename T>
template<class InputIterator>
DataList< T >::DataList ( InputIterator first,
InputIterator last,
SG::OwnershipPolicy ownPolicy = SG::VIEW_ELEMENTS )
inline

copy via iterators: since it is a shallow copy the copy DataList does not own the elements

Definition at line 77 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

79 : m_ownPolicy( ownPolicy ), m_pCont( first, last ) {}

◆ ~DataList() [3/3]

template<typename T>
virtual DataList< T >::~DataList ( )
inlinevirtual

Deletes the pointed-at elements when m_ownPolicy == SG::OWN_ELEMENTS (i.e. by default).

Definition at line 96 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

103 {
104 if ( m_ownPolicy == SG::OWN_ELEMENTS )
105 {
106 iterator iter = begin();
107 while ( iter != end() ) delete *( iter++ );
108 }
109 }

Member Function Documentation

◆ assign() [1/6]

template<typename T>
template<class InputIterator>
void DataList< T >::assign ( InputIterator first,
InputIterator last )
inline

the ownership policy will determine who owns the assigned elements

Definition at line 90 of file Event/GeneratorObject/include/DataModel/DataList.h.

90 {
91 clear();
92 insert( begin(), first, last );
93 }

◆ assign() [2/6]

template<typename T>
template<class InputIterator>
void DataList< T >::assign ( InputIterator first,
InputIterator last )
inline

the ownership policy will determine who owns the assigned elements

Definition at line 90 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

90 {
91 clear();
92 insert( begin(), first, last );
93 }

◆ assign() [3/6]

template<typename T>
template<class InputIterator>
void DataList< T >::assign ( InputIterator first,
InputIterator last )
inline

the ownership policy will determine who owns the assigned elements

Definition at line 90 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

90 {
91 clear();
92 insert( begin(), first, last );
93 }

◆ assign() [4/6]

template<typename T>
void DataList< T >::assign ( size_type n,
value_type pElem )
inline

the ownership policy will determine who owns the assigned elements

Definition at line 96 of file Event/GeneratorObject/include/DataModel/DataList.h.

96 {
97 clear();
98 insert( begin(), n, pElem );
99 }

◆ assign() [5/6]

template<typename T>
void DataList< T >::assign ( size_type n,
value_type pElem )
inline

the ownership policy will determine who owns the assigned elements

Definition at line 96 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

96 {
97 clear();
98 insert( begin(), n, pElem );
99 }

◆ assign() [6/6]

template<typename T>
void DataList< T >::assign ( size_type n,
value_type pElem )
inline

the ownership policy will determine who owns the assigned elements

Definition at line 96 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

96 {
97 clear();
98 insert( begin(), n, pElem );
99 }

◆ operator=() [1/3]

template<typename T>
DataList< T > DataList< T >::operator= ( const DataList< T > & rhs)
inline

op =: since it is a shallow copy the copy DataList does not own the elements

Definition at line 83 of file Event/GeneratorObject/include/DataModel/DataList.h.

83 {
84 m_ownPolicy = SG::VIEW_ELEMENTS;
85 m_pCont = rhs.stdcont();
86 return *this;
87 }

◆ operator=() [2/3]

template<typename T>
DataList< T > DataList< T >::operator= ( const DataList< T > & rhs)
inline

op =: since it is a shallow copy the copy DataList does not own the elements

Definition at line 83 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

83 {
84 m_ownPolicy = SG::VIEW_ELEMENTS;
85 m_pCont = rhs.stdcont();
86 return *this;
87 }

◆ operator=() [3/3]

template<typename T>
DataList< T > DataList< T >::operator= ( const DataList< T > & rhs)
inline

op =: since it is a shallow copy the copy DataList does not own the elements

Definition at line 83 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

83 {
84 m_ownPolicy = SG::VIEW_ELEMENTS;
85 m_pCont = rhs.stdcont();
86 return *this;
87 }

◆ stdcont() [1/3]

template<typename T>
const PtrList & DataList< T >::stdcont ( ) const
inline

access the underlying std list;

Definition at line 41 of file Event/GeneratorObject/include/DataModel/DataList.h.

41{ return m_pCont; }

Referenced by DataList(), and operator=().

◆ stdcont() [2/3]

template<typename T>
const PtrList & DataList< T >::stdcont ( ) const
inline

access the underlying std list;

Definition at line 41 of file InstallArea/x86_64-el9-gcc13-dbg/include/DataModel/DataList.h.

41{ return m_pCont; }

◆ stdcont() [3/3]

template<typename T>
const PtrList & DataList< T >::stdcont ( ) const
inline

access the underlying std list;

Definition at line 41 of file InstallArea/x86_64-el9-gcc13-opt/include/DataModel/DataList.h.

41{ return m_pCont; }

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