| The Gaudi Framework v32r1 (f65d50dc)

Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
ObjectList< TYPE > Class Template Reference

ObjectList is one of the basic Gaudi container classes capable of being registered in Data Stores. More...

`#include <GaudiKernel/ObjectList.h>`

Inheritance diagram for ObjectList< TYPE >:
[legend]
Collaboration diagram for ObjectList< TYPE >:
[legend]

## Public Types
typedef TYPE | contained_type
typedef std::list< TYPE * >::value_type | value_type
typedef std::list< TYPE * >::reference | reference
typedef std::list< TYPE * >::const_reference | const_reference
typedef std::list< TYPE * >::iterator | iterator
typedef std::list< TYPE * >::const_iterator | const_iterator
typedef std::list< TYPE * >::reverse_iterator | reverse_iterator
typedef std::list< TYPE * >::const_reverse_iterator | const_reverse_iterator
typedef std::vector< TYPE * >::pointer | pointer
typedef std::vector< TYPE * >::const_pointer | const_pointer
Public Types inherited from ObjectContainerBase
typedef size_t | size_type
| size_type, to conform the STL container interface More...

## Public Member Functions
| ObjectList ()=default
| Constructors. More...
| ObjectList (const ObjectList< TYPE > &)=delete
ObjectList & | operator= (const ObjectList< TYPE > &)=delete
| ~ObjectList () override
| Destructor. More...
const CLID & | clID () const override
| Retrieve pointer to class definition structure. More...
ObjectList< TYPE >::iterator | begin ()
| Return an iterator pointing to the beginning of the container. More...
ObjectList< TYPE >::const_iterator | begin () const
| Return a const_iterator pointing to the beginning of the container. More...
ObjectList< TYPE >::iterator | end ()
| Return an iterator pointing to the end of the container. More...
ObjectList< TYPE >::const_iterator | end () const
| Return a const_iterator pointing to the end of the container. More...
ObjectList< TYPE >::reverse_iterator | rbegin ()
| Return a reverse_iterator pointing to the beginning of the reversed container. More...
ObjectList< TYPE >::const_reverse_iterator | rbegin () const
| Return a const_reverse_iterator pointing to the beginning of the reversed container. More...
ObjectList< TYPE >::reverse_iterator | rend ()
| Return a reverse_iterator pointing to the end of the reversed container. More...
ObjectList< TYPE >::const_reverse_iterator | rend () const
| Return a const_reverse_iterator pointing to the end of the reversed container. More...
ObjectList< TYPE >::size_type | size () const
| Return the size of the container Size means the number of objects stored in the container, independently on the amount of information stored in each object. More...
ObjectList< TYPE >::size_type | numberOfObjects () const override
| The same as size(), return number of objects in the container. More...
ObjectList< TYPE >::size_type | max_size () const
| Return the largest possible size of the container. More...
bool | empty () const
| Return true if the size of the container is 0. More...
ObjectList< TYPE >::reference | front ()
| Return reference to the first element. More...
ObjectList< TYPE >::const_reference | front () const
| Return const_reference to the first element. More...
ObjectList< TYPE >::reference | back ()
| Return reference to the last element. More...
ObjectList< TYPE >::const_reference | back () const
| Return const_reference to the last element. More...
void | push_back (typename ObjectList< TYPE >::const_reference value)
| push_back = append = insert a new element at the end of the container More...
long | add (ContainedObject *pObject) override
| Add an object to the container. More...
void | pop_back ()
| pop_back = remove the last element from the container The removed object will be deleted (see the method release) More...
long | remove (ContainedObject *value) override
| Release object from the container (the pointer will be removed from the container, but the object itself will remain alive) (see the method pop_back) More...
ObjectList< TYPE >::iterator | insert (typename ObjectList< TYPE >::iterator position, typename ObjectList< TYPE >::const_reference value)
| Insert "value" before "position". More...
void | erase (typename ObjectList< TYPE >::iterator position)
| Erase the object at "position" from the container. The removed object will be deleted. More...
void | erase (typename ObjectList< TYPE >::iterator first, typename ObjectList< TYPE >::iterator last)
| Erase the range [first, last) from the container. The removed object will be deleted. More...
void | clear ()
| Clear the entire content of the container and delete all contained objects. More...
long | index (const ContainedObject *obj) const override
| Return distance of a given object from the beginning of its container It corresponds to the "index" ( from 0 to size()-1 ) If "obj" not fount, return -1. More...
const ContainedObject * | containedObject (long dist) const override
| Return const pointer to an object of a given distance. More...
ContainedObject * | containedObject (long dist) override
| Return const pointer to an object of a given distance. More...
std::ostream & | fillStream (std::ostream &s) const override
| Fill the output stream (ASCII) More...
Public Member Functions inherited from DataObject
| DataObject ()
| Standard Constructor. More...
| DataObject (const DataObject &rhs)
| Copy Constructor. More...
DataObject & | operator= (const DataObject &rhs)
| Assignment Operator. More...
| DataObject (DataObject &&rhs)
| Move Constructor. More...
DataObject & | operator= (DataObject &&rhs)
| Move Assignment Operator. More...
virtual | ~DataObject ()
| Standard Destructor. More...
virtual unsigned long | addRef ()
| Add reference to object. More...
virtual unsigned long | release ()
| release reference to object More...
const std::string & | name () const
| Retreive DataObject name. It is the name when registered in the store. More...
virtual StatusCode | update ()
| Provide empty placeholder for internal object reconfiguration callback. More...
void | setRegistry (IRegistry *pRegistry)
| Set pointer to Registry. More...
IRegistry * | registry () const
| Get pointer to Registry. More...
LinkManager * | linkMgr () const
| Retrieve Link manager. More...
unsigned char | version () const
| Retrieve version number of this object representation. More...
void | setVersion (unsigned char vsn)
| Set version number of this object representation. More...
unsigned long | refCount () const
| Return the refcount. More...

## Static Public Member Functions
static const CLID & | classID ()
Static Public Member Functions inherited from DataObject
static const CLID & | classID ()
| Retrieve reference to class definition structure (static access) More...

## Private Attributes
std::list< TYPE * > | m_list
| The STL list. More...

## Additional Inherited Members
Protected Member Functions inherited from ObjectContainerBase
| ObjectContainerBase ()=default
| Constructor. More...
| ObjectContainerBase (ObjectContainerBase &&)=default
ObjectContainerBase & | operator= (ObjectContainerBase &&)=default

## Detailed Description

### template<class TYPE>
class ObjectList< TYPE >

ObjectList is one of the basic Gaudi container classes capable of being registered in Data Stores.

It is based on Standard Library (STL) std::list (see STL Programmer's Guide) ObjectList has all functions of the std::list interface,

Each object is allowed to belong into a single container only. After inserting the object into the container, it takes over all responsibilities for the object. E.g. erasing the object from its container causes removing the object's pointer from the container and deleting the object itself.

Author
  Pavel Binko
  Pere Mato

Date
  19/10/1999, 30/11/2000

Definition at line 14 of file ContainedObject.h.

## Member Typedef Documentation

## ◆ const_iterator

template<class TYPE>

typedef std::list<TYPE*>::const_iterator ObjectList< TYPE >::const_iterator

Definition at line 45 of file ObjectList.h.

## ◆ const_pointer

template<class TYPE>

typedef std::vector<TYPE*>::const_pointer ObjectList< TYPE >::const_pointer

Definition at line 55 of file ObjectList.h.

## ◆ const_reference

template<class TYPE>

typedef std::list<TYPE*>::const_reference ObjectList< TYPE >::const_reference

Definition at line 42 of file ObjectList.h.

## ◆ const_reverse_iterator

template<class TYPE>

typedef std::list<TYPE*>::const_reverse_iterator ObjectList< TYPE >::const_reverse_iterator

Definition at line 48 of file ObjectList.h.

## ◆ contained_type

template<class TYPE>

typedef TYPE ObjectList< TYPE >::contained_type

Definition at line 38 of file ObjectList.h.

## ◆ iterator

template<class TYPE>

typedef std::list<TYPE*>::iterator ObjectList< TYPE >::iterator

Definition at line 44 of file ObjectList.h.

## ◆ pointer

template<class TYPE>

typedef std::vector<TYPE*>::pointer ObjectList< TYPE >::pointer

Definition at line 54 of file ObjectList.h.

## ◆ reference

template<class TYPE>

typedef std::list<TYPE*>::reference ObjectList< TYPE >::reference

Definition at line 41 of file ObjectList.h.

## ◆ reverse_iterator

template<class TYPE>

typedef std::list<TYPE*>::reverse_iterator ObjectList< TYPE >::reverse_iterator

Definition at line 47 of file ObjectList.h.

## ◆ value_type

template<class TYPE>

typedef std::list<TYPE*>::value_type ObjectList< TYPE >::value_type

Definition at line 39 of file ObjectList.h.

## Constructor & Destructor Documentation

## ◆ ObjectList() [1/2]

template<class TYPE>

ObjectList< TYPE >::ObjectList | ( |  | ) |
| default

Constructors.

## ◆ ObjectList() [2/2]

template<class TYPE>

ObjectList< TYPE >::ObjectList | ( | const ObjectList< TYPE > & |  | ) |
| delete

## ◆ ~ObjectList()

template<class TYPE>

ObjectList< TYPE >::~ObjectList | ( |  | ) |
| inline override

Destructor.

Definition at line 66 of file ObjectList.h.

66 { clear(); }
ObjectList::clear
void clear()
Clear the entire content of the container and delete all contained objects.
Definition: ObjectList.h:210

## Member Function Documentation

## ◆ add()

template<class TYPE>

long ObjectList< TYPE >::add | ( | ContainedObject * | pObject | ) |
| inline override virtual

Add an object to the container.

Implements ObjectContainerBase.

Definition at line 136 of file ObjectList.h.

136 {
137 try {
138 auto ptr = dynamic_cast<typename ObjectList<TYPE>::value_type>( pObject );
139 if ( ptr ) {
140 push_back( ptr );
141 return m_list.size() - 1;
142 }
143 } catch ( ... ) {}
144 return -1;
145 }
ObjectList::value_type
std::list< TYPE * >::value_type value_type
Definition: ObjectList.h:39
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::size
T size(T... args)
ObjectList::push_back
void push_back(typename ObjectList< TYPE >::const_reference value)
push_back = append = insert a new element at the end of the container
Definition: ObjectList.h:129

## ◆ back() [1/2]

template<class TYPE>

ObjectList<TYPE>::reference ObjectList< TYPE >::back | ( |  | ) |
| inline

Return reference to the last element.

Definition at line 123 of file ObjectList.h.

123 { return m_list.back(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::back
T back(T... args)

## ◆ back() [2/2]

template<class TYPE>

ObjectList<TYPE>::const_reference ObjectList< TYPE >::back | ( |  | ) | const
| inline

Return const_reference to the last element.

Definition at line 126 of file ObjectList.h.

126 { return m_list.back(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::back
T back(T... args)

## ◆ begin() [1/2]

template<class TYPE>

ObjectList<TYPE>::iterator ObjectList< TYPE >::begin | ( |  | ) |
| inline

Return an iterator pointing to the beginning of the container.

Definition at line 76 of file ObjectList.h.

76 { return m_list.begin(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::begin
T begin(T... args)

## ◆ begin() [2/2]

template<class TYPE>

ObjectList<TYPE>::const_iterator ObjectList< TYPE >::begin | ( |  | ) | const
| inline

Return a const_iterator pointing to the beginning of the container.

Definition at line 79 of file ObjectList.h.

79 { return m_list.begin(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::begin
T begin(T... args)

## ◆ classID()

template<class TYPE>

static const CLID& ObjectList< TYPE >::classID | ( |  | ) |
| inline static

Definition at line 70 of file ObjectList.h.

70 {
71 static CLID clid = TYPE::classID() + CLID_ObjectList;
72 return clid;
73 }
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8

## ◆ clear()

template<class TYPE>

void ObjectList< TYPE >::clear | ( |  | ) |
| inline

Clear the entire content of the container and delete all contained objects.

Definition at line 210 of file ObjectList.h.

210 { erase( begin(), end() ); }
ObjectList::begin
ObjectList< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectList.h:76
ObjectList::erase
void erase(typename ObjectList< TYPE >::iterator position)
Erase the object at "position" from the container. The removed object will be deleted.
Definition: ObjectList.h:186
ObjectList::end
ObjectList< TYPE >::iterator end()
Return an iterator pointing to the end of the container.
Definition: ObjectList.h:82

## ◆ clID()

template<class TYPE>

const CLID& ObjectList< TYPE >::clID | ( |  | ) | const
| inline override virtual

Retrieve pointer to class definition structure.

Reimplemented from DataObject.

Definition at line 69 of file ObjectList.h.

69 { return ObjectList<TYPE>::classID(); }
ObjectList::classID
static const CLID & classID()
Definition: ObjectList.h:70

## ◆ containedObject() [1/2]

template<class TYPE>

const ContainedObject* ObjectList< TYPE >::containedObject | ( | long | dist | ) | const
| inline override virtual

Return const pointer to an object of a given distance.

Implements ObjectContainerBase.

Definition at line 220 of file ObjectList.h.

220 {
221 return dist < size() ? *std::next( begin(), dist ) : nullptr;
222 }
ObjectList::size
ObjectList< TYPE >::size_type size() const
Return the size of the container Size means the number of objects stored in the container,...
Definition: ObjectList.h:103
std::next
T next(T... args)
ObjectList::begin
ObjectList< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectList.h:76

## ◆ containedObject() [2/2]

template<class TYPE>

ContainedObject* ObjectList< TYPE >::containedObject | ( | long | dist | ) |
| inline override virtual

Return const pointer to an object of a given distance.

Implements ObjectContainerBase.

Definition at line 224 of file ObjectList.h.

224 {
225 return dist < size() ? *std::next( begin(), dist ) : nullptr;
226 }
ObjectList::size
ObjectList< TYPE >::size_type size() const
Return the size of the container Size means the number of objects stored in the container,...
Definition: ObjectList.h:103
std::next
T next(T... args)
ObjectList::begin
ObjectList< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectList.h:76

## ◆ empty()

template<class TYPE>

bool ObjectList< TYPE >::empty | ( |  | ) | const
| inline

Return true if the size of the container is 0.

Definition at line 114 of file ObjectList.h.

114 { return m_list.empty(); }
std::list::empty
T empty(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ end() [1/2]

template<class TYPE>

ObjectList<TYPE>::iterator ObjectList< TYPE >::end | ( |  | ) |
| inline

Return an iterator pointing to the end of the container.

Definition at line 82 of file ObjectList.h.

82 { return m_list.end(); }
std::list::end
T end(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ end() [2/2]

template<class TYPE>

ObjectList<TYPE>::const_iterator ObjectList< TYPE >::end | ( |  | ) | const
| inline

Return a const_iterator pointing to the end of the container.

Definition at line 85 of file ObjectList.h.

85 { return m_list.end(); }
std::list::end
T end(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ erase() [1/2]

template<class TYPE>

void ObjectList< TYPE >::erase | ( | typename ObjectList< TYPE >::iterator | position | ) |
| inline

Erase the object at "position" from the container. The removed object will be deleted.

Definition at line 186 of file ObjectList.h.

186 {
187 if ( ( *position )->parent() ) {
188 // Set the back pointer to 0 to avoid repetitional searching
189 // for the object in the container, and deleting the object
190 ( *position )->setParent( nullptr );
191 delete *position;
192 }
193 // Removing from the container itself
194 m_list.erase( position );
195 }
std::list::erase
T erase(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ erase() [2/2]

template<class TYPE>

void ObjectList< TYPE >::erase | ( | typename ObjectList< TYPE >::iterator | first,
|  | typename ObjectList< TYPE >::iterator | last
| ) |  |
| inline

Erase the range [first, last) from the container. The removed object will be deleted.

Definition at line 198 of file ObjectList.h.

198 {
199 for ( auto iter = first; iter != last; ++iter ) {
200 // Set the back pointer to 0 to avoid repetitional searching
201 // for the object in the container, and deleting the object
202 ( *iter )->setParent( nullptr );
203 delete *iter;
204 }
205 // Removing from the container itself
206 m_list.erase( first, last );
207 }
std::list::erase
T erase(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ fillStream()

template<class TYPE>

std::ostream& ObjectList< TYPE >::fillStream | ( | std::ostream & | s | ) | const
| inline override virtual

Fill the output stream (ASCII)

Reimplemented from DataObject.

Definition at line 229 of file ObjectList.h.

229 {
230 s << "class ObjectList : size = " << std::setw( 12 ) << size() << "\n";
231 // Output the base class
232 // ObjectContainerBase::fillStream(s);
233 if ( !empty() ) {
234 s << "\nContents of the STL list :";
235 long count = 0;
236 for ( const auto& iter : m_list ) {
237 s << "\nIndex " << std::setw( 12 ) << count++ << " of object of type " << *iter;
238 }
239 }
240 return s;
241 }
ObjectList::empty
bool empty() const
Return true if the size of the container is 0.
Definition: ObjectList.h:114
ObjectList::size
ObjectList< TYPE >::size_type size() const
Return the size of the container Size means the number of objects stored in the container,...
Definition: ObjectList.h:103
std::setw
T setw(T... args)
std::count
T count(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
gaudirun.s
string s
Definition: gaudirun.py:316

## ◆ front() [1/2]

template<class TYPE>

ObjectList<TYPE>::reference ObjectList< TYPE >::front | ( |  | ) |
| inline

Return reference to the first element.

Definition at line 117 of file ObjectList.h.

117 { return m_list.front(); }
std::list::front
T front(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ front() [2/2]

template<class TYPE>

ObjectList<TYPE>::const_reference ObjectList< TYPE >::front | ( |  | ) | const
| inline

Return const_reference to the first element.

Definition at line 120 of file ObjectList.h.

120 { return m_list.front(); }
std::list::front
T front(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ index()

template<class TYPE>

long ObjectList< TYPE >::index | ( | const ContainedObject * | obj | ) | const
| inline override virtual

Return distance of a given object from the beginning of its container It corresponds to the "index" ( from 0 to size()-1 ) If "obj" not fount, return -1.

Implements ObjectContainerBase.

Definition at line 214 of file ObjectList.h.

214 {
215 auto i = std::find_if( begin(), end(), [&]( const ContainedObject* o ) { return o == obj; } );
216 return i != end() ? std::distance( begin(), i ) : -1;
217 }
std::distance
T distance(T... args)
ObjectList::begin
ObjectList< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectList.h:76
ContainedObject
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
Definition: ContainedObject.h:31
std::find_if
T find_if(T... args)
ObjectList::end
ObjectList< TYPE >::iterator end()
Return an iterator pointing to the end of the container.
Definition: ObjectList.h:82

## ◆ insert()

template<class TYPE>

ObjectList<TYPE>::iterator ObjectList< TYPE >::insert | ( | typename ObjectList< TYPE >::iterator | position,
|  | typename ObjectList< TYPE >::const_reference | value
| ) |  |
| inline

Insert "value" before "position".

Definition at line 179 of file ObjectList.h.

180 {
181 value->setParent( this );
182 return m_list.insert( position, value );
183 }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::insert
T insert(T... args)

## ◆ max_size()

template<class TYPE>

ObjectList<TYPE>::size_type ObjectList< TYPE >::max_size | ( |  | ) | const
| inline

Return the largest possible size of the container.

Definition at line 111 of file ObjectList.h.

111 { return m_list.max_size(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::max_size
T max_size(T... args)

## ◆ numberOfObjects()

template<class TYPE>

ObjectList<TYPE>::size_type ObjectList< TYPE >::numberOfObjects | ( |  | ) | const
| inline override virtual

The same as size(), return number of objects in the container.

Implements ObjectContainerBase.

Definition at line 108 of file ObjectList.h.

108 { return m_list.size(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::size
T size(T... args)

## ◆ operator=()

template<class TYPE>

ObjectList& ObjectList< TYPE >::operator= | ( | const ObjectList< TYPE > & |  | ) |
| delete

## ◆ pop_back()

template<class TYPE>

void ObjectList< TYPE >::pop_back | ( |  | ) |
| inline

pop_back = remove the last element from the container The removed object will be deleted (see the method release)

Definition at line 149 of file ObjectList.h.

149 {
150 auto position = m_list.back();
151 // Set the back pointer to 0 to avoid repetitional searching
152 // for the object in the container, and deleting the object
153 position->setParent( nullptr );
154 delete position;
155 // Removing from the container itself
156 m_list.pop_back();
157 }
std::list::pop_back
T pop_back(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::back
T back(T... args)

## ◆ push_back()

template<class TYPE>

void ObjectList< TYPE >::push_back | ( | typename ObjectList< TYPE >::const_reference | value | ) |
| inline

push_back = append = insert a new element at the end of the container

Definition at line 129 of file ObjectList.h.

129 {
130 if ( value->parent() ) { const_cast<ObjectContainerBase*>( value->parent() )->remove( value ); }
131 value->setParent( this );
132 m_list.push_back( value );
133 }
std::list::push_back
T push_back(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
ObjectList::remove
long remove(ContainedObject *value) override
Release object from the container (the pointer will be removed from the container,...
Definition: ObjectList.h:161

## ◆ rbegin() [1/2]

template<class TYPE>

ObjectList<TYPE>::reverse_iterator ObjectList< TYPE >::rbegin | ( |  | ) |
| inline

Return a reverse_iterator pointing to the beginning of the reversed container.

Definition at line 89 of file ObjectList.h.

89 { return m_list.rbegin(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::rbegin
T rbegin(T... args)

## ◆ rbegin() [2/2]

template<class TYPE>

ObjectList<TYPE>::const_reverse_iterator ObjectList< TYPE >::rbegin | ( |  | ) | const
| inline

Return a const_reverse_iterator pointing to the beginning of the reversed container.

Definition at line 92 of file ObjectList.h.

92 { return m_list.rbegin(); }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::rbegin
T rbegin(T... args)

## ◆ remove()

template<class TYPE>

long ObjectList< TYPE >::remove | ( | ContainedObject * | value | ) |
| inline override virtual

Release object from the container (the pointer will be removed from the container, but the object itself will remain alive) (see the method pop_back)

Implements ObjectContainerBase.

Definition at line 161 of file ObjectList.h.

161 {
162 // Find the object of value value
163 long idx = 0;
164 auto iter = std::find_if( begin(), end(), [&]( const ContainedObject* i ) { return i == value; } );
165 if ( iter == end() ) {
166 // Object cannot be released from the container,
167 // as it is not contained in it
168 return -1;
169 }
170
171 // Set the back pointer to 0 to avoid repetitional searching
172 // for the object in the container and deleting the object
173 ( *iter )->setParent( nullptr );
174 erase( iter );
175 return idx;
176 }
ObjectList::begin
ObjectList< TYPE >::iterator begin()
Return an iterator pointing to the beginning of the container.
Definition: ObjectList.h:76
ContainedObject
All classes that their objects may be contained in an LHCb ObjectContainer (e.g.
Definition: ContainedObject.h:31
std::find_if
T find_if(T... args)
ObjectList::erase
void erase(typename ObjectList< TYPE >::iterator position)
Erase the object at "position" from the container. The removed object will be deleted.
Definition: ObjectList.h:186
ObjectList::end
ObjectList< TYPE >::iterator end()
Return an iterator pointing to the end of the container.
Definition: ObjectList.h:82

## ◆ rend() [1/2]

template<class TYPE>

ObjectList<TYPE>::reverse_iterator ObjectList< TYPE >::rend | ( |  | ) |
| inline

Return a reverse_iterator pointing to the end of the reversed container.

Definition at line 95 of file ObjectList.h.

95 { return m_list.rend(); }
std::list::rend
T rend(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ rend() [2/2]

template<class TYPE>

ObjectList<TYPE>::const_reverse_iterator ObjectList< TYPE >::rend | ( |  | ) | const
| inline

Return a const_reverse_iterator pointing to the end of the reversed container.

Definition at line 98 of file ObjectList.h.

98 { return m_list.rend(); }
std::list::rend
T rend(T... args)
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245

## ◆ size()

template<class TYPE>

ObjectList<TYPE>::size_type ObjectList< TYPE >::size | ( |  | ) | const
| inline

Return the size of the container Size means the number of objects stored in the container, independently on the amount of information stored in each object.

Definition at line 103 of file ObjectList.h.

103 {
104 // C++11: std::list::size is constant (pre C++11 it could be linear!)
105 return m_list.size();
106 }
ObjectList::m_list
std::list< TYPE * > m_list
The STL list.
Definition: ObjectList.h:245
std::list::size
T size(T... args)

## Member Data Documentation

## ◆ m_list

template<class TYPE>

std::list<TYPE*> ObjectList< TYPE >::m_list
| private

The STL list.

Definition at line 245 of file ObjectList.h.

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

- GaudiKernel/GaudiKernel/ContainedObject.h
- GaudiKernel/GaudiKernel/ObjectList.h